さまざまな Objective-C プログラミング ガイドで強調されている MVC パターンに従って、コントローラーでモデルを使用する場合、コントローラーをdelegate
特定のモデルの として設定する必要があります。現在、作成に非常にコストのかかる巨大な Data オブジェクトがあり、この Data オブジェクトを操作する必要があるコントローラーがいくつかあります。プロパティが適切なコントローラーに設定されている限りdelegate
、Data オブジェクトはそのコントローラーに対して正常に機能します。これらのコントローラー間でこのモデルを共有する方法はありますか?
私はしばらくブレインストーミングを行ってきましたが、特に良い解決策は思いつきませんでした。私が思いついたいくつかのこと
- 通知センターを使用します(ただし、この特定のケースのためだけにそのような関係を設定するには費用がかかるようです)
- Data オブジェクトの各メソッドが引数を取るようにし
delegate
ます。これは私が現在使用しているものですが、扱いにくく、限界に達しています。
編集
NSArray の使用を提案してくれた人々に感謝します。この微妙な点を含めるのを忘れていると思います:
私の場合、デリゲートのA
1 つである が、特定のメソッドの 1 つを使用して Data オブジェクトを照会したいとします。delegate
Data オブジェクトのフィールドが に設定されている場合、結果は正しいものになりますA
。しかし、私が理解していることから、配列を使用してすべてのデリゲートでメソッドを呼び出しても、私が望む答えは得られません。
実際、私の Data オブジェクトは、どのデリゲートがそれを呼び出しているかを認識できなかったため、関連付ける必要があるすべてのデリゲートを認識していても、正しい結果を返すことはできません。
これについて何か考えはありますか?