2012-04-25 85 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 

,赶上这两种方案。