NSUserDefaults
API 文档有 boolForKey:
消息,其描述如下 -
boolForKey:
返回与指定键关联的布尔值。
- (BOOL)boolForKey:(NSString *)defaultName
返回值 如果布尔值与用户默认值中的 defaultName 关联,则返回该值。否则,返回 NO。
假设
[[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]
返回 NO,可能是因为该键不存在,或者该键存在并且具有 boolean
值 NO。我们如何区分?事到如今,我只能从一开始就避免陷入这种境地。
您错误地使用了用户默认值。在启动应用程序时,您应该使用包含所有首选项的默认值的字典来调用
-[NSUserDefaults registerDefaults:]
。
然后,如果用户没有设置首选项,
-boolForKey
将返回默认值。
也使用
-objectForKey:
方法。这会告诉你密钥是否存在。