MEn*_*bah 3 nsuserdefaults swift
我已经设置了一些用户默认值let userDefaults = UserDefaults.standard,当我检索它们时,我可以使用以下任何一个:
jobTextField.text = userDefaults.object(forKey: "job") as? String
或者我可以使用
jobTextField.text = userDefaults.value(forKey: "job") as? String
在什么情况下这将有所不同?很高兴知道什么时候我不能使用其中一个.
非常感谢 :)
value(forKey:)两者完全不同.这value(forKey:)不是一种UserDefaults-only 方法.NSKeyValueCoding根据Apple的文档,它是由它启用的:
NSKeyValueCoding是一种非正式的协议,对象采用它来提供对其属性的间接访问.当对象符合键值编码时,其属性可通过字符串参数通过简洁,统一的消息传递接口寻址.
它发生UserDefaults是NSKeyValueCoding兼容的,所以人们已经(以正确的方式不一定)使用它来访问开始UserDefaults.
object(forKey:)这是访问UserDefaults属性的正确方法.除非你没有充分的理由使用value(forKey:),总是使用object(forKey:),或UserDefaults(即string(forKey:))的其他有效方法.
希望这能搞定!