我的应用程序中有一个UISwitch以及我的设置包中的一个具有相同功能的UISwitch。但是,我的应用程序中的UISwitch未正确保存其设置。任何人都可以看到代码有什么问题吗?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Set the application defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"No" forKey:@"isKgs"];
[defaults registerDefaults:appDefaults];
[defaults synchronize];
}
- (void)switchChanged
{
[[NSUserDefaults standardUserDefaults] setBool:unitSwitch.selected forKey:@"isKgs"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"SwitchGhanged:");
}
-(void)cellForRowAtIndexPath
{
[unitSwitch addTarget:self action:@selector(switchChanged) forControlEvents:UIControlEventValueChanged];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isKgs"])
{
[unitSwitch setOn:YES animated:NO];
}
}
这是设置包
答案 0 :(得分:0)
尝试在UISwitch上使用on
:
[[NSUserDefaults standardUserDefaults] setBool:unitSwitch.on forKey:@"isKgs"];
编辑:无需测试unitSwitch.on已经是BOOLEAN,你可以直接分配。
答案 1 :(得分:0)
[[NSUserDefaults standardUserDefaults] setBool:unitSwitch.on forKey:@"isKgs"];
使用on
属性进行设置。