检查键值是1还是2

Check if key value is 1 or 2

我正在使用 NSUserDefaults,我想知道如何检查密钥整数是 0 还是 1?

我不想检查密钥是否为 "nil",但我想检查它是 0 还是 1。

要设置我使用的值:

setValue(value, forKey: "key"
NSNumber* key = [...];

if (key.integerValue == 1) { ... }
else if (key != nil && key.integerValue == 0) { ... }
else { ... }
如果 key == nil,

integerValue 将 return 0,因此如果要检查密钥是否存在且值为 0,则必须检查两者。当您检查 1 时,这不是必需的,因为如果 key == nil,integerValue 将不是 1。

在Swift中,最简单的方法是先检查key是否存在:

if let key = NSUserDefaults().objectForKey("key") {
    if NSUserDefaults().integerForKey("key") == 0 {
    }
}
let value = 1

NSUserDefaults().setValue(value, forKey: "key")

let loadedValue = NSUserDefaults().integerForKey("key")
println(loadedValue)  // 1
if loadedValue == 1 {
    println(true)   // true
} else {
    println(false)
}