私はビューコントロール階層にiOS 5ストーリーボードを使用しています。これの問題は、ビューコントローラに注入する必要があるビジネスロジックを処理するいくつかの共有コントローラクラスがあることです。これらのコントローラは初期化され、アプリケーションデリゲートに保持されます。iOSのストーリーボードと注入プロパティー
例えば、私はいくつかのView Controllerで使用しているDropboxインタラクションをカプセル化したコントローラを持っています。私は各prepareForSegue:sender:
で参照を渡すことができますが、これはコントローラ全体のビューコントローラの階層に依存します。また、私はシングルトンのパターンを使うことができましたが、私はそれを本当に熱狂させていません。
コントローラを疎結合したい場合、私の選択肢は何ですか?私は異議申し立てについて聞いたことがありますが、私はそれを検討していますが、どんな入力も非常に歓迎されるでしょう。
この問題は、コールビューコントローラに責任を委ねることが問題です。 1つのビューコントローラが複数のビューコントローラによって使用される場合を考える。これは、各ビューコントローラで行わなければならない。 – mkko
それは良いことです。したがって、各親ビューコントローラは、その子を異なるように構成できます。たとえば、ビュー・コントローラがオブジェクトの所定のセットをレンダリングした場合、親ビュー・コントローラはそれを別々に構成できます。これにより、多くの拡張性が可能になります。 – MrJD
設定可能性は素晴らしく、それがDIフレームワークが目指すものです。問題は変更によるものです。これは基本的にコードの複製と同じです。もう1つのことは、DIではクラス内で必要なリソースを定義するのが非常に便利で、提供されることです。この種の手動注入では、ユーザーの誤操作が多く発生します。私はこれが後で不足しているプロパティを注入するいくつかのユーティリティに拡張することができると思う。しかし、私はこれを実装する方法はまだ分かりません。 – mkko