9

NSUserDefaultsを使用してアプリの設定をファイル システムに保存する方法を読み、理解しました。また、後でアプリで使用する前にデフォルトを登録する必要があることも認識しています。

ただし、アプリでさまざまなクラスのデフォルトを登録しても問題ないかどうかはわかりません。たとえば、AppDelegateアプリ全体に属する設定を登録したいのですが、テーマクラスでは、アプリのテーマの取得と設定にのみ使用される設定を使用 (したがって登録) したいと考えています。ユーザーのデフォルトに関する限り、より多くのクラスには独自のニーズがあるため、これは私が取り組んでいるプロジェクトの複数の部分に当てはまります。

正しい作業方法に属するクラスで設定を維持するこの方法はありますか?

4

4 に答える 4

14

はい、複数のクラスからデフォルトを登録できます。新しいデフォルトを登録すると、その新しいキーと値のペアが登録ドメインに追加されるだけです (アプリ用のものは 1 つだけです)。あなたのやり方はとても合理的だと思います。

于 2012-10-04T20:02:17.087 に答える
2

NSUserDefaults は、アプリケーション全体に関連しています。したがって、それらをどこで読み取り/保存するかは重要ではありません。キーは、別のクラスに設定されている場合でも、どのクラスにも表示されます。

私は個人的に自分のスキームを使用しようとしているので、関連する設定は「近い」可能性があります。

すなわち:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:themePreferences forKey:@"Theme"];
[defaults setObject:otherPreferences forKey:@"Other"];

それが役に立てば幸い。

于 2012-10-04T18:38:36.743 に答える
1

これは必須ではありませんが、設定ファイルをクラスごとにゾーニングする場合は、キーの一部としてクラス名を含めることができます。例えば:

NSString *prefKey = [ NSString stringWithFormat: @"%s.prefName", (const char *) class_getName([ self class ]) ];

prefName保存している設定の名前はどこにありますか。そうすれば、異なるクラスで同じ設定名を使用でき、それらが互いに上書きすることを心配する必要はありません。しかし、他の人が言ったように、これを行う必要がある場合を除きNSUserDefaults、アプリケーションのどこからでも呼び出すことができます。

于 2012-10-04T19:24:22.830 に答える
0

それを使用[NSUserDefaults standardUserDefaults]すると、アプリケーション全体で共有されます。また、クラス固有の設定に独自のデフォルト クラスを使用できます。

于 2012-10-04T18:36:43.643 に答える