0

アプリに standardUserDefaults で位置を保存するスイッチがありますが、アプリを初めて起動すると、すべてのスイッチがオフの位置になります。デフォルトでオンに設定するにはどうすればよいですか?

保存

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
    [defs1 setBool: blackSwitch.on forKey: @"blackKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];

ロード

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
    blackSwitch.on = [defs1 boolForKey: @"blackKey"];
4

2 に答える 2

2

NSUserDefaultsメソッドを使用registerDefaultsして、@"blackKey" キーとともにデフォルト値の「true」を渡します。これにより、ユーザーが自分で変更するまで @"blackKey" が ON に設定されます。

于 2012-06-02T17:48:58.067 に答える
2

初めに

以下をせよ

NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
BOOL isOn = [defs1 boolForKey: @"blackKey"];
if(isOn) NSLog(@"isOn");

blackSwitch が nil でないことを 2 番目に確認する

if(blackSwitch) NSLog(@"blackSwitch is not nil");

blackswitch が nil の場合は、まだビュー コントローラーの初期化の初期段階にあることを意味します。それを設定するコードを viewDidLoad または viewWillAppear に移動する必要があります。

デフォルト値を設定するには、このコードを使用してください

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSNumber *testValue = [NSNumber numberWithBool:YES];
NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys:
testValue, @"blackKey", nil];

[defaults registerDefaults:appDefaults]; 
[appDefaults release];
于 2012-06-02T17:37:07.793 に答える