Swift3
我有一个非常奇怪的问题。我希望用户在上一次会话中进行身份验证后,让用户登录应用程序。
我的问题是UserDefaults
有时会返回true,有时甚至是假的,即使在他的帐户中记录也是如此。这个问题让我发疯。我使用存储在bool
中的UserDefaults
值,我尝试保存特定字符串,但问题仍然存在。
有人有这个问题吗?任何解决方案?
以下是我登录时的代码:
UserDefaults.standard.set(true, forKey: LOGIN)
这是AppDelegate
方法中didFinishLaunchingWithOptions
的代码:
if UserDefaults.standard.bool(forKey: LOGIN) {
AppData().updateUserInformation()
}
答案 0 :(得分:1)
我建议在设置UserDefaults值后调用UserDefaults.standard.synchronize()
。许多开发人员说你不需要这样做,iOS会为你照顾它。
但是我发现情况并非总是如此,特别是在设置它们后不久读取值,或者应用程序在同步之前退出并因此丢失时。