Pregunta

El problema

Me paso las pruebas unitarias. En un momento dado, espero usando:

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];

para una NSOperationQueue a estar vacío. Cuando mi aplicación alcanza esta línea, se termina inmediatamente. Está dirigido esta misma línea exacta con otras pruebas. Todas las pruebas estaban trabajando perfectamente recientemente. También termina a veces mi aplicación en el arranque inmediato.

¿Qué demonios está pasando?

¿Fue útil?

Solución

He publicado esto para mí para proporcionar una respuesta en caso de que otros corren en el mismo problema, ya que me he pasado un día completo en esto y gracias a la maravilla de git, finalmente han rastreado el problema.

I añadido:

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
    return YES;
}

en mi aplicación delegado como quería mi aplicación de interrumpir el cierre de la ventana. Resulta que esta es la causa de la terminación aparentemente aleatoria.

Me escondo mi ventana en el arranque, por lo que sólo puedo pensar que esto es lo que causa la aplicación para terminar inmediatamente, aunque esto no ocurre cada vez que el lanzamiento de la aplicación real.

Yo sólo sabía que estaba terminando constantemente en esa prueba unidad, lo que me hizo pensar que era algo que ver con este código o mi prueba. No lo era.

Me deshice de la línea anterior y ahora todo funciona como se esperaba.

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