在 swift 3 和 xcode 8 中将字典保存在 userdefaults 中
Save dictionary in userdefaults in swift 3 with xcode 8
我正在使用以下代码使用 xcode 8:
将对象保存到 UserDefaults(以前的 NSUserDefaults)
let defaults = UserDefaults.standard()
defaults.set(someObject, forKey: "someObject")
print(defaults.object(forKey: "someObject"))
someObject 是一个字典,我在模拟器上 运行。
出于某种原因,这并没有保存值,而是打印了 'nil'。想知道是不是模拟器的问题。
这个问题似乎是安装了两个版本的 xcode/simulator 引起的。
对我有用的是卸载 xcode 7 并在我的系统上保留 xcode 8 beta。清空垃圾箱,重置模拟器和 运行。我也重启了电脑。
执行这些步骤后,模拟器能够保存到 UserDefaults。
在这里完美地工作......!
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 模拟器将解决此问题。
另请参阅:
对于Swift 3
UserDefaults.standard.setValue(token, forKey: "user_auth_token")
print("\(UserDefaults.standard.value(forKey: "user_auth_token")!)")
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
我正在使用以下代码使用 xcode 8:
将对象保存到 UserDefaults(以前的 NSUserDefaults)let defaults = UserDefaults.standard()
defaults.set(someObject, forKey: "someObject")
print(defaults.object(forKey: "someObject"))
someObject 是一个字典,我在模拟器上 运行。
出于某种原因,这并没有保存值,而是打印了 'nil'。想知道是不是模拟器的问题。
这个问题似乎是安装了两个版本的 xcode/simulator 引起的。
对我有用的是卸载 xcode 7 并在我的系统上保留 xcode 8 beta。清空垃圾箱,重置模拟器和 运行。我也重启了电脑。
执行这些步骤后,模拟器能够保存到 UserDefaults。
在这里完美地工作......!
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 模拟器将解决此问题。
另请参阅:
对于Swift 3
UserDefaults.standard.setValue(token, forKey: "user_auth_token")
print("\(UserDefaults.standard.value(forKey: "user_auth_token")!)")
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