次のコードは期待通りに動作しません。私はBOOL
とNSNumber
を正しく処理しないとか、あるいはおそらく私はユーザーのデフォルトとして正しく番号を格納していないと思われるかもしれません。いずれにしても、UISwitch
から値を取得してそれをユーザーのデフォルト値に保存しようとすると、私は価値がないと思っていました。Objective-C:UISwitchから選択した値を取得
NSNumber * on = [NSNumber numberWithBool:self.onSwitch.on];
BOOL onBool = [on boolValue];
NSLog(@"onBool before save%d",onBool);//Logs as 0
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setBool:onBool forKey:@"on"];//
[prefs synchronize];
BOOL onDefault = [[NSUserDefaults standardUserDefaults] objectForKey:@"on"];
NSLog(@"value of on after save%d",onDefault);//logs as 1
誰にでもエラーが発生した場所を確認できますか?
はい、またはNSNumberを返すobjectForKeyを返し、それにboolValueを送ります。 – danh