-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