0

我的应用程序中有按标准用户默认值存储位置的开关,但是当应用程序第一次启动时,我的所有开关都处于关闭位置。如何将它们默认设置为 ON?

节省

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
    [defs1 setBool: blackSwitch.on forKey: @"blackKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];

加载

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
    blackSwitch.on = [defs1 boolForKey: @"blackKey"];
4

2 回答 2

2

首先

请执行下列操作

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
BOOL isOn = [defs1 boolForKey: @"blackKey"];
if(isOn) NSLog(@"isOn");

第二个确保 blackSwitch 不是 nil

if(blackSwitch) NSLog(@"blackSwitch is not nil");

如果 blackswitch 为 nil,这意味着您仍处于视图控制器初始化的早期阶段,您应该将设置它的代码移动到 viewDidLoad 或 viewWillAppear

要设置默认值,请使用此代码

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSNumber *testValue = [NSNumber numberWithBool:YES];
NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys:
testValue, @"blackKey", nil];

[defaults registerDefaults:appDefaults]; 
[appDefaults release];
于 2012-06-02T17:37:07.793 回答
2

使用该NSUserDefaults方法registerDefaults将默认值 'true' 与您的 @"blackKey" 键一起传递。这将确保 @"blackKey" 设置为 ON,直到用户自己对其进行更改。

于 2012-06-02T17:48:58.067 回答