问题是我想在我的申请被终止之前向钥匙串发送一些东西(是的,我的意思是终止 - 不在后台)。
我非常确定AppDelegate
方法:
- (void)applicationWillTerminate:(UIApplication *)application
在类似的情况下工作。但现在,这种方法从未被调用过。
我正在使用Xcode 5并为iOS 7.0开发
答案 0 :(得分:11)
我不确定崩溃时是否会触发applicationWillTerminate:
。
我在didFinishLaunchingWithOptions:
期间致电:
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
然后,在你的appDelegate中,添加:
void uncaughtExceptionHandler(NSException *exception) {
NSLog(@"CRASH: %@", exception);
NSLog(@"Stack Trace: %@", [exception callStackSymbols]);
// Internal error reporting
}
也许你可以通过这种方法保存钥匙串。
答案 1 :(得分:0)
对于Swift 4
在didFinishLaunchingWithOptions()
中使用此代码:
NSSetUncaughtExceptionHandler { exception in
print("Error Handling: ", exception)
print("Error Handling callStackSymbols: ", exception.callStackSymbols)
}
任何时候您的应用崩溃时,都会调用此块。