Swift integerForKey:如果指定的键不存在,则此方法返回0

时间:2015-04-19 20:13:25

标签: ios swift nsuserdefaults

我想在NSUserDefaults中存储一个可能为0的整数。如何区分存储为0的整数和NSUserDefaults中不存在的密钥?

根据the NSUserDefaults docs integerForKey,如果NSUserDefaults中不存在密钥,则返回0。所以,我的问题是:如何区分不存在的密钥和我存储为0的密钥?

1 个答案:

答案 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
    }
}