UserDefault返回不同的值

时间:2017-02-23 16:22:49

标签: ios swift nsuserdefaults

Swift3我有一个非常奇怪的问题。我希望用户在上一次会话中进行身份验证后,让用户登录应用程序。

我的问题是UserDefaults有时会返回true,有时甚至是假的,即使在他的帐户中记录也是如此。这个问题让我发疯。我使用存储在bool中的UserDefaults值,我尝试保存特定字符串,但问题仍然存在。

有人有这个问题吗?任何解决方案?

以下是我登录时的代码:

UserDefaults.standard.set(true, forKey: LOGIN)

这是AppDelegate方法中didFinishLaunchingWithOptions的代码:

if UserDefaults.standard.bool(forKey: LOGIN) {
    AppData().updateUserInformation()
}

1 个答案:

答案 0 :(得分:1)

我建议在设置UserDefaults值后调用UserDefaults.standard.synchronize()。许多开发人员说你不需要这样做,iOS会为你照顾它。

但是我发现情况并非总是如此,特别是在设置它们后不久读取值,或者应用程序在同步之前退出并因此丢失时。