Wy做了NSUserDefaults的objectForKey方法,返回一个字符串“0”而不是nil?

时间:2012-09-28 22:28:33

标签: objective-c ios nsuserdefaults

Wy执行NSUserDefaults objectForKey方法,返回一个字符串,其中包含“0”而不是nil?

文档说明,

  

返回值   与指定键关联的对象,如果键是,则为nil   没找到。

NSDate * date = [[NSUserDefaults standardUserDefaults] objectForKey:OVERTIME_RATE_MARKER];

    if (date) {
      //something
    }

上面的条件语句总是执行,因为如果找不到该对象,它将返回类的对象:__ NSCFString为“0”。什么时候应该返回“nil”

我当然可以测试字符串为“0”。但我真的不想那样做。

我也尝试过将ID用于类型。我一直得到一个带有“0”的__NSCFString。

任何人都可以帮我解决这个问题吗?

感谢任何帮助!

谢谢

1 个答案:

答案 0 :(得分:2)

当密钥不存在时,此API肯定会返回nil。密钥已在您的偏好设置中设置,或者您在代码中的其他位置将其设置为@"0",然后才能读取该代码。