2008-12-15 12 views
11

Cuando mi aplicación se ejecuta en el simulador de iPhone, el método delegadosimulador de iPhone y applicationWillTerminate()

- (void)applicationWillTerminate:(UIApplication *)application 

sólo se le llama la primera vez que me golpeó el botón de inicio del iPhone simulador.

Después de presionar el botón de inicio y la aplicación se inicia de nuevo, al presionar el botón de inicio no se llama al método de delegado.

¿Qué está pasando aquí? ¿Estoy malentendiendo algo fundamental?

Respuesta

24

Sospecho que se está llamando, pero te confundes porque después de presionar el botón de Inicio en el Simulador, has terminado la sesión actual en Xcode. Probablemente tenga un NSLog en su método applicationWillTerminate:, ¿sí? Una vez que presionas el botón de Inicio, NSLog s ya no aparecen en la consola de ejecución de Xcode. Si abre /Applications/Console.app, espero que aparezcan allí.

+0

Sí, usted está en lo correcto. Las llamadas a NSLog() no aparecen después de la primera vez que regresó a la pantalla de inicio. Sin embargo, todas las otras llamadas a funciones llamadas desde el delegado continúan operando como de costumbre. ¡Gracias! – firstresponder

+2

Xcode ya no presta atención a la salida de registro del simulador de iPhone una vez que finaliza el programa y regresa a Springboard. Todo sigue funcionando exactamente igual, excepto que la salida no irá al registro de ejecución de Xcode. –

+0

¿Puedo diferenciar la (finalización de la aplicación debido a una llamada telefónica y reanudarla desde el estado anterior) y (inicio de la aplicación)? –

4
- (void)applicationWillTerminate:(UIApplication *)application 

se llama cuando la aplicación "termina". Si usa iOS, la aplicación NO terminará cuando se presione el botón de inicio, a menos que haya desactivado la multitarea para su aplicación o que el usuario no tenga un dispositivo compatible con varias tareas.

- (void)applicationDidEnterBackground { 

ahora se utiliza cuando el usuario presiona el botón de inicio. A menos que (como dije anteriormente) haya desactivado la multitarea para su aplicación o que el usuario no tenga un dispositivo compatible con varias tareas.

Cuestiones relacionadas