我試圖處理用戶在我的iPad應用程序登錄時的關鍵行爲。ios登錄使用NSUserDefaults,處理崩潰或設備關機
一旦成功登錄後,我們會記住登錄使用NSUserDefaults的,但需要時重新登錄:
- 碰撞發生
- 設備停工,
是可以重置上述操作發生時NSUserDefault的登錄值?如果是,我該如何處理它們?
感謝
我試圖處理用戶在我的iPad應用程序登錄時的關鍵行爲。ios登錄使用NSUserDefaults,處理崩潰或設備關機
一旦成功登錄後,我們會記住登錄使用NSUserDefaults的,但需要時重新登錄:
是可以重置上述操作發生時NSUserDefault的登錄值?如果是,我該如何處理它們?
感謝
對於案例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
}
對於案例1,這不是一個好的解決方案。更好地使用像QuincyKit這樣基於PLCrashReporter的崩潰處理框架。這不僅可以幫助您收集崩潰到您的服務器或服務,但它也爲您提供了一個屬性,以檢查應用程序是否在上次運行中崩潰。一種情況不能被處理,這是因爲過度使用內存導致應用程序被終止。跟蹤相應的代表也不會有幫助,因爲他們沒有指出過程是否會被殺死。 – Kerni 2012-04-26 14:54:15
我不知道的一種方式,一個應用程序知道該設備時斷電。如果你的意思是當應用程序退出閱讀。
或者只是堅持的邏輯在
-(void)applicationDidBecomeActive:(UIApplication *)application
,趕上這兩種方案。
您永遠不應該以用戶默認值存儲登錄憑據。使用鑰匙鏈! – Kerni 2012-04-26 14:40:02