检查NSUserdefaults / UserDefaults

时间:2016-10-28 12:32:13

标签: swift boolean nsuserdefaults

以下两个示例中的哪一个最适合检查boolean中是否存在NSUserdefaults密钥?

1-这可以接受吗?

if NSUserDefaults.standardUserDefaults().boolForKey("myKey"){
   print("Key Does Exist")
}

2-这是首选方式吗?

if (NSUserDefaults.standardUserDefaults().objectForKey("myKey") != nil) {
     print("Key Does Exist")
}

2 个答案:

答案 0 :(得分:5)

如果你想验证是否存储了某个键的内容,第二个选项就可以了(Swift 3)。

if (NSUserDefaults.standardUserDefaults().object(forKey: "myKey") != nil) {
     print("Key Does Exist")
}

object(forKey:) documentation提到如果找不到密钥则会返回nil

但是如果你想验证某个密钥是否存储了什么,它实际上是Boolean:两个版本都没问题。

  • 如果Boolean值存在且实际为true,则为verifies
  • 第二个验证对象是否存在,但您无法确定它是Boolean

检查以下可能性(Swift 3):

if let boolValue = NSUserDefaults.standardUserDefaults().object(forKey: "myKey"), 
  boolValue is Bool {
  // Boolean exists
}

答案 1 :(得分:1)

如果要检查值是否存在,则将使用第二种方法。 第一种方法是检查值是真还是假 第一种方法是做同样的

    let booleanValue = NSUserDefaults.standardUserDefaults().boolForKey("myKey")
    if booleanValue{

    }

然而,第二种方法检查值 做你想做的事情的好方法是

if let booleanValue = NSUserDefaults.standardUserDefaults().boolForKey("myKey"){
    print(booleanValue)         
}

这将允许您访问布尔值,它为您提供布尔值作为您可以使用的变量