我的应用程序中的开关通过standardUserDefaults存储位置,但是当app首次启动时,我的所有开关都处于OFF位置。如何默认将它们设置为ON?
保存
NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
[defs1 setBool: blackSwitch.on forKey: @"blackKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
加载
NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
blackSwitch.on = [defs1 boolForKey: @"blackKey"];
答案 0 :(得分:2)
首先
执行以下操作
NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
BOOL isOn = [defs1 boolForKey: @"blackKey"];
if(isOn) NSLog(@"isOn");
第二个问题是blackSwitch不是零
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];
答案 1 :(得分:2)
使用NSUserDefaults
方法registerDefaults
将默认值'true'与@“blackKey”键一起传递。这将确保将@“blackKey”设置为ON,直到用户自己对其进行更改。