在applicationWillTerminate中写入UserDefaults并不总是有效

时间:2017-05-22 06:40:03

标签: ios swift appdelegate

我试图检测应用程序上次运行时是否崩溃。

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并不总是保存?

0 个答案:

没有答案