1

次のコードを使用して、アプリケーションの設定を取得できます。

[[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"]

しかし、この設定が保存されているかどうかを確認する方法は?

PS 正確な設定が以前のバージョンのアプリケーションから保存されているかどうかを知る必要があるため、特別な BOOL 設定を使用することはできません。

4

1 に答える 1

3

使用objectForKey:

NSNumber *integerSetting = [[NSUserDefaults standardUserDefaults] objectForKey:@"settingName"];
if (integerSetting) {
    NSInteger value = [integerSetting integerValue];
    // use value
} else {
    // setting not there
}

これのポイントがデフォルト値を設定することである場合は、デフォルト値を設定する方がよいでしょう。アプリの開始時にこれを行います。

NSDictionary *defaults = @{ @"settingName" : @42 }; // set some default value
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];

デフォルトを登録しても、実際には値が変更されないことに注意してください。まだ明示的な値を持たない値を取得しようとすると、登録済みのデフォルトが取得されます。

これで、コードは次のようになります。

NSInteger value = [[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"];
于 2013-02-22T16:08:47.693 に答える