アプリのどこからでもアクセスできるいくつかの設定が必要です。これを実装する最良の方法はありますか?現在、アプリのデリゲートにプロパティを貼り付けているだけで、次のようにアクセスします。
ClientAppDelegate *appDelegate = (ClientAppDelegate *)[[UIApplication sharedApplication] delegate];
settingValue = appDelegate.setting;
アプリのどこからでもアクセスできるいくつかの設定が必要です。これを実装する最良の方法はありますか?現在、アプリのデリゲートにプロパティを貼り付けているだけで、次のようにアクセスします。
ClientAppDelegate *appDelegate = (ClientAppDelegate *)[[UIApplication sharedApplication] delegate];
settingValue = appDelegate.setting;
それらが永続的である場合は、NSUserDefaultsを使用してください。そうでない場合は、それらをクラスにラップし、それらを必要とするすべてのクラスにポインターを与えます。いずれの場合も、(1) 依存関係が明らかになり (「ああ、このコードの動作は構成に依存する」)、(2) カスタム構成オブジェクトを提供できるように、構成オブジェクトへの接続を変更できるようにする必要があります。テスト目的で。Miško Hevery による、シングルトン、カップリング、およびテストに関する優れた一連の記事があります。Singletons are Pathological Liarsという投稿から始めて、そこからフォローアップすると、設計に役立ちます。
使用NSUserDefaults
— アプリケーション設定を保存するための信頼性が高く簡単な方法であり、アプリケーションの起動後も維持されます。