检查 NSUserdefaults/UserDefaults 中是否存在布尔键的正确方法是什么
What is the proper way to check if a Boolean key exists in NSUserdefaults/UserDefaults
下面两个示例中哪个最适合检查 boolean
键是否存在于 NSUserdefaults
中?
1- 这可以接受吗?
if NSUserDefaults.standardUserDefaults().boolForKey("myKey"){
print("Key Does Exist")
}
2- 这是首选方式吗?
if (NSUserDefaults.standardUserDefaults().objectForKey("myKey") != nil) {
print("Key Does Exist")
}
如果您想验证是否为密钥存储了某些内容,第二个选项就可以了 (Swift 3)。
if (NSUserDefaults.standardUserDefaults().object(forKey: "myKey") != nil) {
print("Key Does Exist")
}
object(forKey:)
documentation 提到如果找不到密钥则返回 nil
。
但是如果你想验证是否为密钥存储了某些东西,而它实际上是一个 Boolean
:这两个版本都不好。
- 首先 verifies 如果
Boolean
值存在并且实际上是 true
。
- 第二个验证对象是否存在,但您不能确定它是
Boolean
。
检查以下可能性(Swift 3):
if let boolValue = NSUserDefaults.standardUserDefaults().object(forKey: "myKey"),
boolValue is Bool {
// Boolean exists
}
如果您想检查一个值是否存在,您将使用第二种方法。
第一种方法你只是检查值是真还是假
第一种方法是一样的
let booleanValue = NSUserDefaults.standardUserDefaults().boolForKey("myKey")
if booleanValue{
}
但是第二种方法检查值
做你想做的事情的一个好方法是
if let booleanValue = NSUserDefaults.standardUserDefaults().boolForKey("myKey"){
print(booleanValue)
}
这将允许您访问布尔值,并将布尔值作为您可以使用的变量提供给您
下面两个示例中哪个最适合检查 boolean
键是否存在于 NSUserdefaults
中?
1- 这可以接受吗?
if NSUserDefaults.standardUserDefaults().boolForKey("myKey"){
print("Key Does Exist")
}
2- 这是首选方式吗?
if (NSUserDefaults.standardUserDefaults().objectForKey("myKey") != nil) {
print("Key Does Exist")
}
如果您想验证是否为密钥存储了某些内容,第二个选项就可以了 (Swift 3)。
if (NSUserDefaults.standardUserDefaults().object(forKey: "myKey") != nil) {
print("Key Does Exist")
}
object(forKey:)
documentation 提到如果找不到密钥则返回 nil
。
但是如果你想验证是否为密钥存储了某些东西,而它实际上是一个 Boolean
:这两个版本都不好。
- 首先 verifies 如果
Boolean
值存在并且实际上是true
。 - 第二个验证对象是否存在,但您不能确定它是
Boolean
。
检查以下可能性(Swift 3):
if let boolValue = NSUserDefaults.standardUserDefaults().object(forKey: "myKey"),
boolValue is Bool {
// Boolean exists
}
如果您想检查一个值是否存在,您将使用第二种方法。 第一种方法你只是检查值是真还是假 第一种方法是一样的
let booleanValue = NSUserDefaults.standardUserDefaults().boolForKey("myKey")
if booleanValue{
}
但是第二种方法检查值 做你想做的事情的一个好方法是
if let booleanValue = NSUserDefaults.standardUserDefaults().boolForKey("myKey"){
print(booleanValue)
}
这将允许您访问布尔值,并将布尔值作为您可以使用的变量提供给您