一、声明一个Block Reference
Block Reference包含对一个Block的引用references。声明它的语法和声明指针很相似,只不过指针用*,而block用^。
下面是它的声明的一些例子:
void (^blockReturningVoidWithVoidArgument)(void); int (^blockReturningIntWithIntAndCharArguments)(int, char); void (^arrayOfTenBlocksReturningVoidWithIntArgument[10])(int);
Block也支持...的可变参数,没有参数的block必须在参数表里写上void。
你可以将一个Block Reference转化成一个任意类型的指针,但是,你绝不能通过释放指针的引用来释放Block Reference,因为一个Block的size不能在编译的时候计算得到。
你也可以创建自己想要的类型的Block,如:
typedef float (^MyBlockType)(float, float); MyBlockType myFirstBlock = // ... ; MyBlockType mySecondBlock = // ... ;
待写。。。。。