2012-02-13 41 views
10

我需要保存一些数据在我的应用程序中,当应用程序终止并且即使它崩溃。我知道当应用程序终止时调用applicationWillTerminate,但我不确定在应用程序崩溃时调用哪个方法。
有人可以帮我吗?在应用程序崩溃时调用appDelegate中是否有任何方法?

+1

你应该写一个不会崩溃的应用程序,它可以解决你的问题 – 2012-02-13 10:22:10

+2

非常好的考虑Vince。但是你永远不知道什么可能会导致应用程序崩溃先处理它比稍后处理好。 – Nitish 2012-02-13 10:28:09

回答

14

那么你可以添加自己的异常处理程序来捕获错误。

首先,你需要定义例外方法:

然后告诉该应用使用异常处理程序:

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

有没有办法,让应用节省崩溃的数据,因为储蓄可能是坠机的原因!

+0

我可以在这个uncaughtExceptionHandler方法中的NSUserDefaults中保存当前时间(应用程序崩溃时间)吗?这是最佳实践吗? – Bhushan 2016-01-28 09:57:35

+0

我不认为你可以,但你可以把你的错误写入应用程序沙箱,这就是crashlytics,hockyapp和sorts这样的库。 – rckoenes 2016-01-28 10:02:11

+0

感谢您的快速响应。有没有另一种方式来节省当前应用程序崩溃的时间?我在applicationWillTerminate方法中节省时间,但它不会在应用程序崩溃时调用。其实我的应用程序是以我需要上次会话注销时间进一步处理的方式。任何帮助,你可以提供将不胜感激。 – Bhushan 2016-01-28 10:33:08

-3

不,您无法了解应用程序何时崩溃。

相关问题