Objective c 如何测试NSUserDefaults用户设置中是否存在BOOL?

Objective c 如何测试NSUserDefaults用户设置中是否存在BOOL?,objective-c,ios,xcode,Objective C,Ios,Xcode,我在NSUserDefaults中设置BOOL值,如下所示 [userDefaults setBool:NO forKey:@"theKeyOfMyBOOL"]; 在代码的其他地方,如果NSUserDefaults中没有设置键“theKeyOfMyBOOL”,我想执行一些操作。如何验证此密钥是否已设置?如果我这样做 [userDefaults boolForKey:@"theKeyOfMyBOOL"]; 然后返回的值可以是nil,我相信它的计算结果为false,或者实际的BOOL值NO,它的

我在NSUserDefaults中设置BOOL值,如下所示

[userDefaults setBool:NO forKey:@"theKeyOfMyBOOL"];
在代码的其他地方,如果NSUserDefaults中没有设置键“theKeyOfMyBOOL”,我想执行一些操作。如何验证此密钥是否已设置?如果我这样做

[userDefaults boolForKey:@"theKeyOfMyBOOL"];
然后返回的值可以是nil,我相信它的计算结果为false,或者实际的BOOL值NO,它的值为false


但是,我需要区分这两个值(当然也包括YES)。如何可靠地做到这一点?

[userDefaults boolForKey:@“theKeyOfMyBOOL”]
返回BOOL,因此
YES
NO
(而不是
nil

在内部,它存储为
NSNumber
。所以,如果你打电话

[userDefaults objectForKey:@"theKeyOfMyBOOL"];
如果您曾经存储过任何内容,您将获得一个
NSNumber
,如果您没有存储任何内容,您将获得一个
nil

可能重复的