ios block


一、声明一个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 = // ... ;

待写。。。。。

原文地址:https://www.cnblogs.com/wyqfighting/p/3274502.html