私は以下のシナリオを持っています:オブジェクトA
は、ユーザーの選択に応じていくつかの操作を実行するオブジェクトB
を作成します。 A
はB
の代理人です。 A
は、ユーザーが行った選択(別のオブジェクトC
によって表される)には参照を保持しませんが、B
を作成するメソッドでそれを認識しています。オブジェクトB
がそのタスクを完了したときに、 A
が実装している対応するプロトコルメソッドを呼び出すことによってその旨を通知します。参照を保持している補完ハンドラVS:このシナリオにはSwiftで最も適していますか?
私がこのシナリオで考える最初の解決策は、選択肢C
の参照をA
に入れ、終了時にB
が呼び出すプロトコルメソッドの実装にアクセスすることです。しかし、C
を完了ハンドラを渡してA
に参照を保持しないようにして、B
が終了するまで、より良い選択肢を処理することがよりスムーズになるかもしれません。
この2番目の解決策(完了ハンドラとしてクロージャをB
に渡す)についてどう思いますか?それは最初の解決策(A
の参照を保持)よりも適切でしょうか?
このような場合、そのソリューションをどのように実装する必要がありますか? B
には完了ハンドラと呼ばれるクロージャの参照がありますか?
EDIT:私のシナリオのいくつかの追加情報:
A
が正確プロパティB
を持っていない、それはナビゲーションコントローラにそれをプッシュします。A
常にに関するC
B
仕上げ、それはB
A
に要求されたタスクに依存する場合のみ、(前に言ったように、B
によって行われるタスクに応じて)についてC
B
一回を知っている必要がありますを知っている必要はありませんしました一部のデータの更新が完了しました。A
のみ
A
が
B
を所有している所有権の階層では、(前に言ったように、
B
によって行われるタスクに応じて)要するに一つだけ
C
一度
ありがとう。多分、私のシナリオについてさらに詳しく述べるべきです、私は私の質問を編集するつもりです。 – AppsDev