同じ機能を持つ設定バンドルに1つのUISwitchがあります。しかし、私のアプリのUISwitchは設定を正しく保存していません。コードに何か間違っている人はいますか?UISwitchがNSUserDefaultの変更に応答しない
- (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];
}
}
そして、ここでの設定は
ユーザーが決して設定ページを開いていない場合に登録するデフォルト設定を設定する必要はありませんか?アプリが特定のキーの値を保存したことがない場合は、registerDefaultsで指定した値が取得されます。それ以外の場合は、保存された値が開始値よりも優先されます –
ありがとうございます。「選択済み」ではなく「オン」がすべてを修正したと思います。 –
@Faisalあなたはそれをする必要があります。私の悪い。 –