2017-02-22 5 views
0

私はちょうど良い、使いやすいブロックを研究し、インラインコーディングに役立ち、ある場所に物事を保持します。しかし、私は次の2つの点をはっきりと理解することができません。ブロック対ブロックのメソッド

1)ブロックとメソッドおよび代理人との違いは何ですか?

2)デリゲートとメソッドよりも便利なブロックは、メソッドやデリゲートの上にブロックを使用する利点です。

より良いコンセプトを理解してくれて助かります。事前に感謝しています!

答えて

0

は、あなたが尋ねると、一見好奇心の質問:

1)ブロックはメソッドと代表者とは異なりますどのように?

2)デリゲートとメソッドよりも便利なブロックは、メソッドやデリゲートの上にブロックを使用する利点です。

した後、あなたは書いた:

使いやすい、インラインコーディングに役立ちますし、私は多分誤解のにあなたがここに、後に何をしている、

かかわらず、一つの場所で事を保ちます役に立つと思われる場合は、ご自身で考慮する必要があります。

  • インスタンスメソッドとデリゲートは、どちらもオブジェクトのインスタンスに関連付けられています。したがって、インスタンス変数、プロパティ、その他のメソッドをすべて参照して使用することができるselfがあります。どちらも付随する状態になる。
  • ブロックは、関数と同様に、オブジェクトのインスタンスに関連付けられていません。
  • ブロックは、定義されたメソッド/関数から値と変数(__blockと注釈されたもの)を取り込むことができるという点で、関数と異なります。だから彼らは何らかの状態を持っている。
  • 他のものよりも優れている点については、シナリオに適したものを選ぶことが本当に問題になります。あなたが必要とするものを決める。オブジェクト(メソッド)に動作を追加する、インスタンス/メソッドのペアを渡してある機能(デリゲート)を提供する、ローカルスコープ(ブロック)の値に基づいて機能を提供する、等。適切な構成を使用してください。

HTH

関連する問題