2

2 つのオブジェクトを互いのデリゲートとして使用しても問題ありませんか? 私のシナリオは、2 つのモードで表示されるビューがあるということです。1 つ目: 作成モードと 2 つ目: 編集モード

作成モードでは、すべてのフィールドが空で、ユーザーが入力したビューからデータを取得し、データ モデルを更新します。

ビュー モードでは、データ モデルからビューを埋めます。

これは、こぼれたView Controllerを使用して行われています(このため、委任を使用する必要があります)。これをもっとうまく説明できればいいのですが、これが私にできる最善のことです。現在、AからBへの通信とBからAへの通知に委任を使用しています。

委任を両方の方法で使用すると、これはうまく機能しますか...または、私が予測できない複雑さが関係していますか?

4

1 に答える 1

6

発生する可能性のある問題がいくつかありますが、必要な予防措置を講じれば問題ありません。

  1. 両方のデリゲートが弱参照であることを確認してください。これは@property (weak)、ARC またはで使用することを意味し@property (assign)ます。これにより、リテイン サイクルが発生するのを防ぐことができます。

  2. デリゲート メソッドが他のコントローラーのデリゲート メソッドを呼び出し、最初のコントローラーで同じデリゲート メソッドを呼び出すような状況にならないようにしてください。注意しないと、簡単に無限ループに陥る可能性があります。

この状況でこれが最良の設計パターンであるかどうかについての議論または議論は、実際には SO に属するものではありません。しかし、注意すればこのようにすることは可能です。これがあなたの質問への答えです。

于 2012-07-15T14:40:37.717 に答える