阅读NSUserDefault bool

时间:2011-10-19 15:30:28

标签: objective-c nsuserdefaults boolean

我有一个问题,我正在尝试将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];

2 个答案:

答案 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,并将其值注册为默认值?更简单的恕我直言。