我有一个问题,我正在尝试将bool注册为NSUserDefault。然后我希望以后能够读取这个bool值。问题在于,当我读取值时,它不会将其作为YES
。
以下是我用来注册值的代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *appDefaults = [NSMutableDictionary dictionary];
[appDefaults setValue:@"YES" forKey:kShowHelp];
[defaults registerDefaults:appDefaults];
[defaults synchronize];
然后我使用以下内容阅读bool:
bool showHelp = [[NSUserDefaults standardUserDefaults] boolForKey:kShowHelp];
答案 0 :(得分:4)
不要使用setValue:forKey:use setObject:forKey:
[appDefaults setObject:[NSNumber numberWithBool:YES] forKey:kShowHelp];
答案 1 :(得分:1)
为什么不使用setBool:forKey
?
[ appDefaults setBool: YES forKey: kShowHelp ];
修改强>
好的,既然你有一本字典,你应该使用NSNumber来表示一个布尔值。
示例强>
NSUserDefaults * defaults = [ NSUserDefaults standardUserDefaults ];
NSMutableDictionary * appDefaults = [ NSMutableDictionary dictionary ];
[ appDefaults setObject: [ NSNumber numberWithBool: YES ] forKey: kShowHelp ];
[ defaults registerDefaults: appDefaults ];
[ defaults synchronize ];
编辑2
您是否知道您还可以在应用程序的包中创建一个plist,并将其值注册为默认值?更简单的恕我直言。