Pages

2009-08-31

Snow Leopardで利用可能になったブロック構文

Snow Leopardでは、C/C++/Objective-Cでブロック構文が使えるようになりました。今のところGrand Central Dispatchとともに語られることが多いようですが、GCD専用とかいうわけでは全然なくて、汎用的な無名関数とかラムダみたいな感じで簡単に使えます。こんな感じ。

void (^block)(id);

block = ^(id obj) {
    NSLog(@"%@", obj);
};

block(self);

これと同時にCocoaも拡張されていて、NSStringの- enumerateLinesUsingBlock:といったように、ブロックを引数として取るようなメソッドがいくつか追加されています。メソッドだけでなく新しいクラスも登場していて、NSBlockOperationのようにブロックを用いてNSInvocationOperationと同じようなことができるクラスも追加されています。

0 件のコメント:

コメントを投稿