我试图处理用户在我的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