NSUserDefaults API文档具有被这样描述的boolForKey:消息 -

boolForKey:

返回与指定键相关联的布尔值。

- (BOOL)boolForKey:(NSString *)defaultName

返回值 如果一个布尔值是在用户的默认值与相关联的defaultName中,则返回该值。否则,NO被返回。

假定一个[[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]还给一个NO它可以是因为该键不存在或键存在并具有boolean值NO。我们如何区分?截至目前,我只能避免陷入这种情况在首位。

有帮助吗?

解决方案

您正在使用的用户默认值不正确。在启动您的应用程序,你应该调用-[NSUserDefaults registerDefaults:]与包含所有属性的默认值的字典。

然后,如果用户没有设置首选项,-boolForKey将返回默认值。

其他提示

使用-objectForKey:方法为好。这会告诉你钥匙是否存在。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top