これは私には非常に奇妙な相互作用のように思えますが、同時にそれは機能するだけでなく、プロセスで警告やエラーをスローしません。一般的なブロックと、なぜこのようなものが正しいか間違っているのかをよりよく理解するために探しています。
このようなことをしてはいけない理由はありますか?
NSArray *array = [NSArray arrayWithObjects:^{NSLog(@"Block 1");}, ^{NSLog(@"Block 2");}, ^{NSLog(@"Block 3");}, nil];
for (id block in array) {
[block invoke];
}