Swift integerForKey:如果指定的key不存在,则此方法returns 0
Swift integerForKey: If the specified key does not exist, this method returns 0
我想在 NSUserDefaults 中存储一个可能为 0 的整数。如何区分存储为 0 的整数和 NSUserDefaults 中不存在的键?
根据 the NSUserDefaults docs integerForKey
returns 0 如果键在 NSUserDefaults 中不存在。所以,我的问题是:如何区分不存在的密钥和存储为 0 的密钥?
您可以使用 objectForKey
方法进行检查,因为此方法不会自动 returns 0 而是 returns nil,如果密钥不存在:
if let yourInteger = NSUserDefaults.standardUserDefaults().objectForKey("yourKey"){
//Key exists
}
您可以为 NSUserDefaults 创建一个扩展来检查:
extension NSUserDefaults {
func hasKey(key: String) -> Bool {
return objectForKey(key) != nil
}
}
我想在 NSUserDefaults 中存储一个可能为 0 的整数。如何区分存储为 0 的整数和 NSUserDefaults 中不存在的键?
根据 the NSUserDefaults docs integerForKey
returns 0 如果键在 NSUserDefaults 中不存在。所以,我的问题是:如何区分不存在的密钥和存储为 0 的密钥?
您可以使用 objectForKey
方法进行检查,因为此方法不会自动 returns 0 而是 returns nil,如果密钥不存在:
if let yourInteger = NSUserDefaults.standardUserDefaults().objectForKey("yourKey"){
//Key exists
}
您可以为 NSUserDefaults 创建一个扩展来检查:
extension NSUserDefaults {
func hasKey(key: String) -> Bool {
return objectForKey(key) != nil
}
}