从中获取值NSUserDefaults
我会做这样的事情:
let userDefaults = NSUserDefaults.standardUserDefaults()
if let value = userDefaults.objectForKey(key) {
print(value)
}
但是,这些方法不返回可选值:
-
boolForKey
(默认为false
如果没有设置)
-
integerForKey
(默认为0
如果没有设置)
-
floatForKey
(默认为0.0
如果没有设置)
-
doubleForKey
(默认为0.0
如果没有设置)
在我的应用程序中,我想使用保存的整数值(如果之前已设置)。如果之前没有设置,我想使用我自己的默认值。问题是0
是我的应用程序的有效整数值,所以我无法知道是否0
是之前保存的值,还是默认未设置的值。
我该如何处理这个问题?
您可以使用objectForKey
(返回一个可选值)并使用as?
可选择将其转换为Int
.
if let myInteger = UserDefaults.standard.object(forKey: key) as? Int {
print(myInteger)
} else {
print("no value was set for this key")
}
解决方案Bool
, Float
, and Double
会以同样的方式工作。
Note:
我建议采用已接受的答案并设置默认值,而不是在可能的情况下强制转换通用对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)