2016-04-25 7 views
2

私はプログラミングが比較的新しいので、私は手を包むことができない1つのことがあります。つまり、ブロックとは何か、そしてなぜ/いつそれらを使用するのですか?ブロックとメソッドの違いは何ですか?私にとっては、彼らは同じようなことをしているようです。Objective-Cのメソッドとブロックの相違

私にこれを説明できるものはありますか?

はい、私は最終的にここに来る前にGoogleに時間を費やしました。

答えて

2
  1. ブロックの主要な機能は、あなたがしているメソッドの場所でそれを判断することができるということです。ロジックを読み、理解するのに非常に便利です。
  2. ブロックはコールバックの代替手段です。
  3. ブロックは、それが定義されているレキシカルスコープから状態を取得できます。
2
  • ブロックは無名関数です。
  • ブロックは後で実行するために使用されますが、後で実行するために関数を使用することはできません。
  • ブロックはコールバックによく使用されます(デリゲートを使用する必要はありません)
  • ブロックはオブジェクトですが、機能はオブジェクトではありません。

アニメーションのような操作をビュー上で実行し、完了後に通知したいとします。そして、あなたはこのコードを書かなければならなかった:

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(animationDidStop:context:)]; 
[UIView commitAnimations]; 

しかし、あなたは以下のようなブロックを使用している場合は、数行のコードする必要があります。

[UIView animateWithDuration:2.0 animations:^{ 
// set up animation 
} completion:^{ 
// this will be executed on completion 
}]; 

あなたは、ブロックの使用について、今はっきりしているホープ。