0

为什么 NSUserDefaults objectForKey 方法返回一个带有“0”而不是 nil 的字符串?

文档状态,

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

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

    if (date) {
      //something
    }

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

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

我还尝试使用 ID 作为类型。我不断得到一个带有“0”的__NSCFString。

谁能帮我解决这个问题?

任何帮助表示赞赏!

谢谢

4

1 回答 1

2

nil当密钥不存在时,此 API 肯定会返回。密钥已经在您的首选项中设置,或者您在@"0"读取它的代码之前将其设置到代码中的其他位置。

于 2012-09-28T22:52:37.890 回答