2011年3月4日金曜日

ブロック

ブロック、良く解らないけどプログラムの小さな固まり(たぶんすごく大きくても良いけど)。
変数や、リテラル値として定義できる。
AS3の関数リテラルやJavaScriptのクロージャ?のような感じ。
ちょっとわかりにくいので使わなくても良いかな?と思うけど、
COCOAフレームワークのではメソッドの引数として使われることもあるようなので必須なのかも。

int a = 5;
int (^onefrom)(int); //ブロック変数定義
onefrom = ^(int anint){ //ブロックのリテラル定義、ブロック変数に代入
int b = 10;
return anint +a +b;
};
NSLog(@"Block =%d",onefrom(20));
結果:
2011-03-04 22:46:43.113 testBlock[15953:207] Block =35

0 件のコメント:

コメントを投稿