UserDefaults 中的 object(forKey:) 和 value(forKey:) 有什么区别? [英] What is the difference between object(forKey:) and value(forKey:) in UserDefaults?
问题描述
我使用 let userDefaults = UserDefaults.standard
设置了一些用户默认值,当我检索它们时,我可以使用以下任何一个:
I've set some user defaults using let userDefaults = UserDefaults.standard
, and when I'm retrieving them, I can use any of these:
jobTextField.text = userDefaults.object(forKey: "job") as?字符串
或者我可以使用
jobTextField.text = userDefaults.value(forKey: "job") as?字符串
在什么情况下这会有所不同?很高兴知道我什么时候不能使用其中之一.
in what case this will has a difference? It'd be great to know when I can NOT use one of them.
非常感谢:)
推荐答案
value(forKey:)
来自 键值编码,而不是UserDefaults
的直接方法.
value(forKey:)
is from key-value coding, and not a direct method of UserDefaults
.
切勿在 UserDefaults
或 Dictionary
或任何其他类上使用 value(forKey:)
,除非您清楚地了解需要使用 key-值编码以获得所需的结果.
Never use value(forKey:)
on UserDefaults
or Dictionary
or any other class unless you have a clearly understood need to use key-value coding to get the desired result.
当您没有这样的需求时,请使用相关类提供的标准访问方法(例如UserDefaults object(forKey:)
.
When you don't have such a need, use the standard access methods provided by the class in question (such as UserDefaults object(forKey:)
.
这篇关于UserDefaults 中的 object(forKey:) 和 value(forKey:) 有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!