2012-02-13 13 views
10

Necesito guardar algunos datos en mi aplicación, cuando la aplicación finaliza e incluso si se bloquea. Sé que se llama al applicationWillTerminate cuando finaliza la aplicación, pero no estoy seguro de qué método se llama cuando falla la aplicación.
¿Alguien me puede ayudar aquí?¿Hay algún método en appDelegate que se invoca cuando falla la aplicación?

+1

debe escribir una aplicación que no se cuelga, lo que resuelve su problema –

+2

Muy buena consideración Vince. Pero nunca se sabe qué podría bloquear su aplicación. Tratarlo antes es mejor que hacerlo más tarde. – Nitish

Respuesta

14

Bueno, podría agregar su propio manejador de excepciones para detectar el error.

Primero debe definir el método de excepción:

luego decirle a la aplicación para utilizar el gestor de excepciones:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 
    // The rest if you code .... 
} 

No hay manera para que la aplicación guarda los datos en estrellarse, ¡ya que el ahorro podría ser la razón del accidente!

+0

¿Puedo guardar la hora actual (tiempo de bloqueo de la aplicación) en NSUserDefaults en este método uncaughtExceptionHandler? ¿Es la mejor práctica? – Bhushan

+0

No creo que puedas, pero puedes escribir tu error en la zona de pruebas de las aplicaciones, así es como funcionan las bibliotecas como crashlytics, hockyapp y clases. – rckoenes

+0

gracias por la respuesta rápida. ¿Hay alguna otra forma de ahorrar tiempo actual cuando falla la aplicación? Estoy ahorrando tiempo en el método applicationWillTerminate pero no está llamando cuando se bloquea la aplicación. En realidad, mi aplicación es de tal manera que necesito que la última sesión de cierre de sesión sea procesada. Cualquier ayuda que puedas proveer, sería apreciada. – Bhushan

-3

No, no puede saber cuándo se bloquea la aplicación.

Cuestiones relacionadas