-1
我在Swift3
中有一个很奇怪的问题。我想让用户在他上一次会话中进行身份验证后保持登录状态。UserDefault返回不同的值
我的问题是,UserDefaults
有时会返回true,有时甚至会在他的帐户中记录为false。这个问题让我发疯。我使用存储在UserDefaults
中的bool
值,我试图保存特定的字符串,但问题仍然存在。
任何人有这个问题?任何解决方案
下面是代码,当我登录:
UserDefaults.standard.set(true, forKey: LOGIN)
这是我在AppDelegate
代码didFinishLaunchingWithOptions
方法:
if UserDefaults.standard.bool(forKey: LOGIN) {
AppData().updateUserInformation()
}
UserDefaults不过是一个内存字典,有时候会备份到plist。无论是否同步,都无法立即读取用户默认值设置的值。有关完整的详细信息,请参阅http://stackoverflow.com/a/40809748/1226963。 – rmaddy
我只是说实践经验已经显示出来。从不同线程访问UserDefaults.standard会加剧这种情况。 – picciano