NSUserDefaults のコードは非常に単純に見えますが、機能させることができません。
ユーザーがサウンドを無効にするかどうかを設定できるsettingViewsがあります。これが私のコードです:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.soundSettings.font = [UIFont rw_snapFontWithSize:24.0f];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:@"stateForSoundSwitch"]) {
NSLog(@"Sound is ON");
self.soundStatus.on=YES;
} else {
self.soundStatus.on=NO;
NSLog(@"Sound is OFF");
}
}
- (IBAction)soundSwitchChanged:(id)sender
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (self.soundStatus.on) {
NSLog(@"Sound is enabled");
[defaults setBool:true forKey:@"stateForSoundSwitch"];
}
else {
NSLog(@"Sound is disabled");
[defaults setBool:false forKey:@"stateForSoundSwitch"];
}
[defaults synchronize];
}
しかし、スイッチをFALSEに変更しても、設定画面にログインするたびに値はTRUEになります。私は何が欠けていますか?