次のコードを使用して、アプリケーションの設定を取得できます。
[[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"]
しかし、この設定が保存されているかどうかを確認する方法は?
PS 正確な設定が以前のバージョンのアプリケーションから保存されているかどうかを知る必要があるため、特別な BOOL 設定を使用することはできません。
使用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"];