NSUserDefaults的boolforKey限制的设计?
-
25-09-2019 - |
题
在NSUserDefaults
API文档具有被这样描述的boolForKey:
消息 -
boolForKey:
返回与指定键相关联的布尔值。
- (BOOL)boolForKey:(NSString *)defaultName
返回值 如果一个布尔值是在用户的默认值与相关联的defaultName中,则返回该值。否则,NO被返回。
假定一个[[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]
还给一个NO它可以是因为该键不存在或键存在并具有boolean
值NO。我们如何区分?截至目前,我只能避免陷入这种情况在首位。
解决方案
您正在使用的用户默认值不正确。在启动您的应用程序,你应该调用-[NSUserDefaults registerDefaults:]
与包含所有属性的默认值的字典。
然后,如果用户没有设置首选项,-boolForKey
将返回默认值。
其他提示
使用-objectForKey:
方法为好。这会告诉你钥匙是否存在。
不隶属于 StackOverflow