我在 NSUserDefaults 中设置了一个 BOOL 值,如下所示。
[userDefaults setBool:NO forKey:@"theKeyOfMyBOOL"];
在我的代码的其他地方,如果键“theKeyOfMyBOOL”没有在 NSUserDefaults 中设置,我想执行一些操作。如何验证是否设置了此 key ?如果我这样做
[userDefaults boolForKey:@"theKeyOfMyBOOL"];
那么返回的值可能是 nil,我相信它的计算结果为 false,或者是实际的 BOOL 值 NO,它的计算结果为 false。
但是,我需要区分这两个值(当然还有 YES)。我该如何可靠地做到这一点?
最佳答案
[userDefaults boolForKey:@"theKeyOfMyBOOL"];
返回一个 BOOL,所以 YES
或 NO
(不是 nil
)。
在内部,它存储为 NSNumber
。所以,如果你打电话
[userDefaults objectForKey:@"theKeyOfMyBOOL"];
如果您曾经存储过任何东西,您将得到一个NSNumber
,如果您没有存储过任何东西,您将得到一个nil
。
关于objective-c - 如何测试 NSUserDefaults 用户设置中是否存在 BOOL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9971811/