По какой-то причине использование NSUserDefaults для сохранения состояния моего коммутатора и моей метки не работает. Я могу сохранить состояние своего коммутатора и загрузить его, однако, если я не изменю вручную состояние переключателя, метка не будет изменяться на включение или выключение.Состояние переключателя, не связанное с меткой
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
self->switch1.on = ([[standardDefaults stringForKey:@"switchKey"]
isEqualToString:@"On"]) ? (YES) : (NO);
Как вы можете видеть, я добавил в label.text = @ «OFF», когда переключатель выключен, но тем не менее он по-прежнему не меняется.
- (IBAction)switchChanged:(UISwitch *)sender {
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
if (sender.on == 0) {
label.text = @"OFF";
[standardDefaults setObject:@"Off" forKey:@"switchKey"];
} else if (sender.on == 1) {
label.text = @"ON";
[standardDefaults setObject:@"On" forKey:@"switchKey"];
}
[standardDefaults synchronize];
}
Прежде чем я захочу сохранить состояние переключателя, я просто использовал это.
-(IBAction) alarmSettings1{
if (switch1.on)
{ label.text = @"ON";}
else { label.text = @"OFF";}
}
Я знаю, что я просто делаю что-то не так, но не могу понять, что.
Почему вы используете stringForKey? вместо этого использовать ObjectForKey? –
Ваши розетки подключены? –
@DianaProdan да, они – avi