2012-02-13 20 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

不,您無法瞭解應用程序何時崩潰。

相關問題