code

xcode 8을 사용하여 신속한 3의 userdefaults에 사전 저장

codestyles 2020. 12. 27. 10:54
반응형

xcode 8을 사용하여 신속한 3의 userdefaults에 사전 저장


다음 코드를 사용하여 xcode 8을 사용하여 UserDefaults (이전 NSUserDefaults)에 개체를 저장하고 있습니다.

let defaults = UserDefaults.standard()
defaults.set(someObject, forKey: "someObject")
print(defaults.object(forKey: "someObject"))

someObject는 사전이고 시뮬레이터에서 실행 중입니다.

어떤 이유로 이것은 값을 저장하지 않고 'nil'이 인쇄됩니다. 시뮬레이터 문제인지 궁금합니다.


Swift 3의 경우

UserDefaults.standard.setValue(token, forKey: "user_auth_token")
print("\(UserDefaults.standard.value(forKey: "user_auth_token")!)")

여기서 완벽하게 작동합니다 ..!

    let dict:[String:String] = ["key":"Hello"]
    UserDefaults.standard.set(dict, forKey: "dict")
    let result = UserDefaults.standard.value(forKey: "dict")
    print(result!)
    // Output -> { key:hello;}

이것은 iOS 8/9 시뮬레이터가 이전에 실행 된 경우 NSUserDefaults / UserDefualts가 iOS 10 시뮬레이터에서 작동하지 않는 문서화되지 않았지만 알려진 문제입니다.

Mac을 재부팅하고 XCode 8, iOS 10 시뮬레이터로 바로 이동하면이 문제가 해결됩니다.

참고 항목 : 내 앱이 XCode 8 베타 (8S128d)에서 실행되지 않는 이유


이 문제는 두 가지 버전의 xcode / simulator가 설치되어있는 것으로 보입니다.

나를 위해 일한 것은 xcode 7을 제거하고 xcode 8 베타를 시스템에 유지하는 것입니다. 쓰레기 비우기, 시뮬레이터 재설정 및 실행. 또한 컴퓨터를 다시 시작했습니다.

이 단계를 수행 한 후에 시뮬레이터는 UserDefaults에 저장할 수 있습니다.


스위프트 4 :-

let defaults = UserDefaults.standard

let dictionary: [String:String] = ["key":"Value"]  //Dictionary which you want to save

defaults.setValue(dictionary, forKey: "DictValue") //Saved the Dictionary in user default

let dictValue = defaults.value(forKey: "DictValue") //Retrieving the value from user default 

print(dictValue)  // Printing the value 

참조 URL : https://stackoverflow.com/questions/37825630/save-dictionary-in-userdefaults-in-swift-3-with-xcode-8

반응형