standard nsuserdefaults swift3 xcode8 ios10

nsuserdefaults - standard - userdefaults swift 3



Guarde el diccionario en los valores predeterminados del usuario en swift 3 con xcode 8 (5)

Este es el problema indocumentado pero conocido que NSUserDefaults / UserDefualts no funciona en el simulador de iOS 10 si el simulador de iOS 8/9 se ha ejecutado previamente.

Al reiniciar su Mac e ir directamente a XCode 8, el simulador de iOS 10 solucionará este problema.

Consulte también: ¿Por qué mi aplicación no se ejecuta en XCode 8 beta (8S128d)?

Estoy usando el siguiente código para guardar un objeto en UserDefaults (anteriormente NSUserDefaults) usando xcode 8:

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

someObject es un diccionario y lo estoy ejecutando en el simulador.

Por alguna razón, esto no está guardando el valor y se imprime ''nil''. Preguntándose si es un problema de simulador.


Este problema parece ser causado por tener dos versiones de xcode / simulator instaladas.

Lo que funcionó para mí fue desinstalar xcode 7 y simplemente mantener xcode 8 beta en mi sistema. Vaciar la basura, reiniciar el simulador y ejecutar. También reinicié mi computadora.

Después de seguir estos pasos, el simulador puede guardar en UserDefaults.


Para Swift 3

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


Trabajando perfectamente aquí con esto ...!

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


Swift 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