Pregunta

cómo utilizar cómo utilizar NSRunLoop en Objective-C y esperar a que alguna variable para cambiar el valor?

Gracias

¿Fue útil?

Solución

No se suele utilizar una NSRunLoop en la producción que esperar para una variable para cambiar. Se podría utilizar una devolución de llamada.

Sin embargo, en el código de prueba de unidad tenemos lo siguiente:

NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
    while (!callBackInvoked && !errorHasOccured && runCount-- &&  [[NSRunLoop currentRunLoop]  runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
        twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
    }

El código de espera hasta que se invoca, ya sea nuestra devolución de llamada, se produjo un error o el número de 2 segundos períodos que hemos esperado se ha producido. Utilizamos esto para probar los delegados que hacen devoluciones de llamada.

Como ya he dicho que yo no haría esto en el código de producción.

Otros consejos

Se podría utilizar generalmente no NSRunLoop directamente en el código.

Se podría, por ejemplo, crear aplicaciones GUI que ya ha NSRunLoop en el mismo (usar plantillas de código de aplicaciones predefinidas en Xcode).

Depende de lo que se que se supone que la variable para cambiar, es posible que tenga algún lugar dentro de su objeto 'Modelo' y será cambiado por algunas como si los datos que llegan en línea, o vinculados al objeto GUI y el usuario realiza la acción.

  • Si es botón de configuración que lo haría manipuladores para invocar la acción.
  • Si se trata de variables que lo haría instalación KVC / MVA para detectar el cambio y la llamada manejador.

Y así sucesivamente, Cocoa manejará el código de unión para usted, sólo tiene que manejo adecuado de instalación para realizar la acción.

No hay suficientes datos en su pregunta, sugeriría echar un vistazo a algunos básicos tutorial en el sitio de Apple para los desarrolladores para ver lo que está disponible en el cacao.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top