Iphone NSUserDefaults BOOLWORKEY设计限制?
Iphone NSUserDefaults BOOLWORKEY设计限制?,iphone,ios,cocoa,api,foundation,Iphone,Ios,Cocoa,Api,Foundation,NSUserDefaultsAPI文档包含boolforky:消息,如下所述- boolForKey: 返回与指定键关联的布尔值 - (BOOL)boolForKey:(NSString *)defaultName 返回值 如果布尔值与用户默认值中的defaultName关联,则返回该值。否则,将返回NO 如果[[NSUserDefaults standardUserDefaults]boolforky:@“some_Key”]返回否,则可能是因为该键不存在,或者该键存在且具有布尔值NO。我
NSUserDefaults
API文档包含boolforky:
消息,如下所述-
boolForKey:
返回与指定键关联的布尔值
- (BOOL)boolForKey:(NSString *)defaultName
返回值
如果布尔值与用户默认值中的defaultName关联,则返回该值。否则,将返回NO
如果
[[NSUserDefaults standardUserDefaults]boolforky:@“some_Key”]
返回否,则可能是因为该键不存在,或者该键存在且具有布尔值NO。我们如何区分?到目前为止,我只能从一开始就避免陷入这种情况。也可以使用-objectForKey:
方法。这将告诉您该密钥是否存在。您使用的用户默认值不正确。在应用程序启动时,您应该使用包含所有首选项默认值的字典调用-[NSUserDefaults registerDefaults:
然后,如果用户没有设置首选项,-boolforky
将返回默认值。。因此,我以前搜索时没有找到这一个。:)BOOL不是对象,因此不能使用。是的,BOOL
s不是对象,但是NSUserDefaults
将它们作为NSNumber
实例处理,这是您从-objectForKey:
中得到的结果。我不会走得太远,说他错误地使用了用户默认值。注册默认值是可选的,在他的情况下可能更方便,但迈克·阿卜杜拉的答案更合适。