objc 的に Blocks はオブジェクトとして実装されていることはドキュメントから読み取れたのだけど,リファレンスにはそれらしいクラスが記載されていないので,ちょっと調べてみた クラス階層をたどってみた void put_class_inheritances(id obj) { Class klass = [obj class]; while(klass) { NSLog(@"%@", [klass description]); klass = [klass superclass]; } } __block int x = 1; void (^block1)() = ^{printf("test\n");}; void (^block2)() = ^{printf("test %d\n", x);}; put_class_inheritances(block1); put_class_