BOOL不保存在用户默认值中

时间:2012-04-24 23:13:14

标签: ios xcode nsuserdefaults

有人可以帮我理解为什么这个bool没有保存?

以下是视图中我的代码加载:

[appDelegate.defaults setBool:YES forKey:@"testKey"];
[appDelegate.defaults synchronize];
NSLog (@"TEST BOOL VALUE = %@", [appDelegate.defaults boolForKey:@"testKey"] ? @"YES" : @"NO");

在app delegate applicationDidFinishLaunching中,我将appdelegate.defaults定义为:

    self.defaults = [NSUserDefaults standardUserDefaults];

为什么这不起作用我真的不知道。

谢谢!

2 个答案:

答案 0 :(得分:3)

当您拨打上述代码时,

appDelegatenil

尝试添加NSSlog以检查:

NSLog(@"appDelegate: %@", appDelegate);
NSLog(@"appDelegate.defaults: %@", appDelegate.defaults);
[appDelegate.defaults setBool:YES forKey:@"testKey"];
// ...

答案 1 :(得分:2)

您应该使用:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"testKey"];

或将defaults属性设置为[NSUserDefaults standardUserDefaults]