我试图检测应用程序上次运行时是否崩溃。
在applicationWillTerminate
我有以下代码:
let defaults = UserDefaults.standard
defaults.set(false, forKey: CRASHED_KEY)
defaults.synchronize()
saveContext()
将值设置为false
我指示应用已正确关闭。
在application(didFinishLaunchingWithOptions)
我有以下代码:
let defaults = UserDefaults.standard
let crashedLastTime = defaults.bool(forKey: CRASHED_KEY)
if (crashedLastTime) {
//Handle error
}
defaults.set(true, forKey: CRASHED_KEY)
defaults.synchronize()
启动时将其设置为true
,如果崩溃,则为true
。
从xCode重启应用程序时,此代码有点奇怪,因为它显然没有调用applicationWillTerminate
。但这不是问题。
我遇到的问题是,在某些情况下,即使我正确终止了该应用,它也会启动并说它崩溃了。
为什么UserDefaults并不总是保存?