iphone debugging ios4 sigkill

La aplicación para iPhone que ejecuta Simulator 4.0 recibió Sigkill



debugging ios4 (2)

Acabo de recibir el iPhone SDK 4 y estoy tratando de dejar de desarrollar una aplicación en la que estaba trabajando antes. Así que implementé ambas aplicaciones -(void)applicationDidEnterBackground:(UIApplication *)application y - (void)applicationWillTerminate:(UIApplication *)application

Cuando hago clic en el botón de inicio en el simulador 4.0, parece funcionar bien. La aplicación llama a -(void)applicationDidEnterBackground:(UIApplication *)application e ingresa el estado de fondo.

Sin embargo, luego hago doble clic en el botón de inicio para exponer la aplicación que se ejecuta en segundo plano y la mantengo presionada para mostrar el signo menos o salir. Cuando hago clic en el signo menos, el depurador dice

Señal recibida del programa: "SIGKILL"

Además, - (void)applicationWillTerminate:(UIApplication *)application nunca se llama. ¿Me estoy perdiendo algo que tengo que hacer para que esto funcione en OS4? O al menos alguien me puede indicar una forma de depurar SIGKILL. Gracias.


Es de esperar que la barra multitarea "botón de cierre rojo" sea el equivalente a la fuerza para salir de una aplicación en Mac OS X. Este es el comportamiento documentado. Apple espera que los usuarios normales de iOS 4 simplemente inicien / usen / modifiquen aplicaciones que no tienen que pensar en términos de terminación de procesos ni nada. El sistema lo administrará.

Solo asegúrese de guardar cualquier dato importante en la aplicación: willResignActive: o applicationWillEnterBackground. Porque después de eso es posible que te maten cuando la presión de la memoria obliga al sistema a limpiar ... Snow Leopard introdujo un comportamiento similar para las aplicaciones que usan la clave NSSupportsSuddenTermination en su Info.plist. Una aplicación básicamente le dice al sistema que periódicamente guarda sus datos poco a poco, de modo que cuando va en segundo plano no quede nada por hacer o muy poco. A diferencia de las aplicaciones de escritorio de aplicaciones monolíticas grandes ...


-applicationWillTerminate: solo se llama si su aplicación está en estado de ejecución cuando se le pide que se cierre. Si ya está en un estado suspendido (como lo tiene aquí), el sistema simplemente envía una señal de muerte a la aplicación. Esto ocurre cuando el usuario presiona los botones rojos menos para finalizar la aplicación manualmente y también cuando el sistema decide abandonar la aplicación para liberar memoria para la aplicación de primer plano.

Si su aplicación se ejecuta en segundo plano (reproduciendo música o ejecutando algunas tareas en segundo plano, por ejemplo) y el usuario termina la aplicación manualmente presionando el botón menos, solo entonces obtendrá un mensaje -applicationWillTerminate: . Por lo tanto, debe guardar todo su estado / etc. antes de regresar de -applicationDidEnterBackground: