Swift3
에 매우 이상한 문제가 있습니다. 마지막 세션에서 이미 인증 한 사용자를 응용 프로그램에 계속 로그인시키고 싶습니다.UserDefault가 다른 값을 반환합니다.
내 문제는 UserDefaults
가 가끔 true로 돌아가고, 가끔 계정에 로그인되어 있어도 false 인 경우입니다. 문제는 나를 미치게 만든다. bool
값을 UserDefaults
에 저장하면 특정 문자열을 저장하려고했지만 문제가 지속됩니다.
누구든지이 문제가 있습니까? 어떤 해결책? 내가 로그인 할 때 다음
코드입니다 :UserDefaults.standard.set(true, forKey: LOGIN)
그리고 이것은 didFinishLaunchingWithOptions
방법 AppDelegate
내 코드입니다 : 내가 UserDefaults 값을 설정 한 후 UserDefaults.standard.synchronize()
를 호출 제안
if UserDefaults.standard.bool(forKey: LOGIN) {
AppData().updateUserInformation()
}
UserDefaults는 경우에 따라 plist에 백업 된 메모리 내 사전입니다. 사용자 기본값에서 설정된 값을 동기화 여부와 상관없이 즉시 다시 읽을 수있는 방법은 없습니다. 자세한 내용은 http://stackoverflow.com/a/40809748/1226963을 참조하십시오. – rmaddy
내가 말하는 것은 실용적인 경험이 그렇지 않다는 것입니다. 다른 스레드에서 UserDefaults.standard에 액세스하면 상황이 악화됩니다. – picciano