2012-04-25 90 views
0

我試圖處理用戶在我的iPad應用程序登錄時的關鍵行爲。ios登錄使用NSUserDefaults,處理崩潰或設備關機

一旦成功登錄後,我們會記住登錄使用NSUserDefaults的,但需要時重新登錄:

  1. 碰撞發生
  2. 設備停工,

是可以重置上述操作發生時NSUserDefault的登錄值?如果是,我該如何處理它們?

感謝

+0

您永遠不應該以用戶默認值存儲登錄憑據。使用鑰匙鏈! – Kerni 2012-04-26 14:40:02

回答

0

對於案例1添加一個異常處理程序

- (void) applicationDidFinishLaunching: (UIApplication *) application 
{ 
    NSSetUncaughtExceptionHandler (&myExceptionHandler); 
} 
.... 
- (void) myExceptionHandler (NSException *exception) 
{ 
    // Make a note in your default settings 
    // User needs to log in 
} 

對於案例2陷阱

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    // Make a note in your default settings 
    // User needs to log in 
} 
+0

對於案例1,這不是一個好的解決方案。更好地使用像QuincyKit這樣基於PLCrashReporter的崩潰處理框架。這不僅可以幫助您收集崩潰到您的服務器或服務,但它也爲您提供了一個屬性,以檢查應用程序是否在上次運行中崩潰。一種情況不能被處理,這是因爲過度使用內存導致應用程序被終止。跟蹤相應的代表也不會有幫助,因爲他們沒有指出過程是否會被殺死。 – Kerni 2012-04-26 14:54:15

0

我不知道的一種方式,一個應用程序知道該設備時斷電。如果你的意思是當應用程序退出閱讀。

或者只是堅持的邏輯在

-(void)applicationDidBecomeActive:(UIApplication *)application 

,趕上這兩種方案。