19

NSUserDefaultsAPI文档有这样描述的消息boolForKey:-

boolForKey:

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

- (BOOL)boolForKey:(NSString *)defaultName

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

假设 a[[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]返回一个 NO,它可能是因为密钥不存在或密钥存在并且boolean值为 NO。我们如何区分?到目前为止,我只能首先避免陷入这种情况。

4

2 回答 2

33

您使用的用户默认值不正确。在您的应用程序启动时,您应该-[NSUserDefaults registerDefaults:]使用包含所有首选项的默认值的字典进行调用。

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

于 2010-12-10T10:44:53.280 回答
29

也使用该-objectForKey:方法。这将告诉您密钥是否存在。

于 2010-12-10T09:59:15.097 回答