0

次のブログhttp://thejoeconwayblog.wordpress.com/2012/05/29/blocks-or-delegation/
からデリゲートコールバックとブロックの主な違いの1つは、「プロセスと結果」です。

私の質問は
、プロセスを完了して開始するためにブロッキングを使用したいのですが、プロセス中に、プロセスステップを呼び出し元に通知したいと思います。進行状況の通知にのみ、デリゲートコールバックまたはデリゲートコールバック付きのブロックを使用する方がよいですか?

4

3 に答える 3

0

良くも悪くもありません。両方の選択肢がその仕事をします。

通常、ブロックはよりエレガントで、ボイラープレートコードの要求が少なくなります。一方、私の観点からは、委任は他の人のコードを読むときに理解しやすいことがよくあります。

委任とブロックの両方を組み合わせる意味がわかりません。個人的にはそうすることを控えます。

于 2012-11-11T15:13:42.030 に答える
0

デリゲートとブロックに関するいくつかの所見は次のとおりです

  1. オブジェクトに複数の個別のイベントがある場合は、委任を使用します。
  2. オブジェクトがシングルトンの場合、委任を使用することはできません。
  3. オブジェクトが追加情報を求めてコールバックしている場合は、おそらく委任を使用します。
  4. デリゲートコールバックはよりプロセス指向であり、ブロックはより結果指向です。
  5. マルチステッププロセスの途中で通知を受ける必要がある場合は、委任を使用することをお勧めします。
  6. 要求している情報(または情報の取得の失敗に関する詳細)だけが必要な場合は、ブロックを使用する必要があります。
于 2016-07-20T08:53:44.943 に答える
0

Delegateは、あるオブジェクトが別のオブジェクトに代わって動作するシンプルで強力なパターンです。

ブロックは、メソッドを呼び出すローカルおよびパラメーターにアクセスできる自己完結型のコードです。ブロックは、コードの可読性と保守性を向上させます。

于 2017-01-07T13:10:35.627 に答える