내가 스위프트 3 사용하고 있습니다 및 페이스 북의 로그인을 잃고, 나는 다음과 같이 사용자 기본 설정에 facebookSDKGraphrequest에서 얻을 몇 가지 기본 값을 저장 : 나는 경우에만 사용자가 한 번 그 코드를 실행해야NSUserdefaults는 메모리
// save basic settings in standard user defaults: age, gender, first name
let defaults = UserDefaults.standard
defaults.set(firstName!, forKey: "firstName")
defaults.set(gender!, forKey: "gender")
let currentUserAge = calculateAge(birthday: birthDay!)
defaults.set(currentUserAge, forKey: "age")
을 로그인 한 다음 정보를 userDefaults에 저장하면 설정됩니다.
그래서 내가 마지막으로 몇 번 전화를 걸어서 내 앱을 열면 내 userDefaults가 비어 있습니다.
내가 다른 클래스에서이 코드를 실행
,let defaults = UserDefaults.standard
var name = defaults.object(forKey: "firstName") as? String
var age = defaults.integer(forKey: "age")
var gender = defaults.object(forKey: "gender") as? String
나는 모든 값을 전무을 얻고 있었다. 그래서 지금은 편집증 적입니다. 사용자의 앱에서 이러한 일이 발생하면 오류가 발생하기 때문입니다.
누군가가 UserDefaults가 메모리를 잃어 버리는 이유를 설명 할 수 있습니까? 값을 삭제하거나 재설정하지 않았습니다. 나는 아마 100 빌드를 거쳤고, 이번에는 UserDefaults의 값이 0이되었습니다.
야 마르 주셔서 감사합니다. – makthrow
그것은 UserDefaults가 데이터를 잃어버린 이유를 설명하지 않습니다. 아마 일어난 일은 내 페이스 북 요청이 실패하고, 내가 가진 값이 0이 아니며, 코드에서 기본값을 nil로 설정했다는 것입니다. – makthrow
맞습니다. '동기화'에 대한 누락 된 전화가 문제가되면 디스크에 저장된 데이터가 사라지지 않아야합니다. – Marcio