NSUserDefaults boolforKey 设计限制?

问题描述 投票:0回答:2

NSUserDefaults
API 文档有
boolForKey:
消息,其描述如下 -

boolForKey:

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

- (BOOL)boolForKey:(NSString *)defaultName

返回值 如果布尔值与用户默认值中的 defaultName 关联,则返回该值。否则,返回 NO。

假设

[[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]
返回 NO,可能是因为该键不存在,或者该键存在并且具有
boolean
值 NO。我们如何区分?事到如今,我只能从一开始就避免陷入这种境地。

cocoa-touch foundation
2个回答
33
投票

您错误地使用了用户默认值。在启动应用程序时,您应该使用包含所有首选项的默认值的字典来调用

-[NSUserDefaults registerDefaults:]

然后,如果用户没有设置首选项,

-boolForKey
将返回默认值。


29
投票

也使用

-objectForKey:
方法。这会告诉你密钥是否存在。

© www.soinside.com 2019 - 2024. All rights reserved.