NSUserDefaultキーにいくつかの初期値を設定して、アプリの最初の実行で妥当な初期設定ができるようにします。 App Bundleの.plistでこれを行う簡単な方法に出くわしたと思いましたが、今は見つかりません。何か案は?
registerDefaults
のNSUserDefaults
メソッドを使用する必要があります。バンドルにデフォルトの設定を含むplistファイルを準備し、そのplistを使用してデフォルトを登録します。
NSString *defaultPrefsFile = [[NSBundle mainBundle] pathForResource:@"defaultPrefs" ofType:@"plist"];
NSDictionary *defaultPreferences = [NSDictionary dictionaryWithContentsOfFile:defaultPrefsFile];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultPreferences];
アプリを起動するたびにこのコードを実行する必要があります。これらの値は、ユーザーのデフォルト階層の別のドメインに追加されます。アプリのユーザーデフォルトで特定のキーの値が提供されない場合、NSUserDefaults
はこのドメインにフォールバックし、そこから値を取得します。
多くのデフォルト値がある場合は、使用してみましょう ola's answer 、そうでない場合、これはいくつかのパラメータに適しています
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults boolForKey:USERDEFAULT_IS_INITIALIZED]) {
[defaults setBool:YES forKey:USERDEFAULT_IS_INITIALIZED];
// Set initial values
...
[defaults synchronize];
}
if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"initialValuesHaveBeenWritten"])
{
[[NSUserDefaults standardUserDefaults] setValue:obj1 forKey:key1];
[[NSUserDefaults standardUserDefaults] setValue:obj2 forKey:key2];
[[NSUserDefaults standardUserDefaults] setValue:obj1 forKey:@"initialValuesHaveBeenWritten"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
注意:テストされていません。メモリから実行されます。