我想在NSUserDefaults中存储一个可能为0的整数。如何区分存储为0的整数和NSUserDefaults中不存在的密钥?
根据the NSUserDefaults docs integerForKey
,如果NSUserDefaults中不存在密钥,则返回0。所以,我的问题是:如何区分不存在的密钥和我存储为0的密钥?
答案 0 :(得分:4)
您可以使用objectForKey
方法进行检查,因为如果密钥不存在,此方法不会自动返回0但返回nil:
if let yourInteger = NSUserDefaults.standardUserDefaults().objectForKey("yourKey"){
//Key exists
}
您可以为NSUserDefaults创建一个扩展程序来检查:
extension NSUserDefaults {
func hasKey(key: String) -> Bool {
return objectForKey(key) != nil
}
}