Block的定义和函数的定义一样只不过需要把*修改成^,block的使用如下所示:
int (^blockSum) (int, int) = ^(int a, int b){
return a +b;
};
int a = blockSum(12,23);
Nslog("%d", a);
// 类型是:int (^)(int a, int b)
// 定义了一个返回类型是int, 带有两个int参数的函数,匿名函数在OC里面叫BLock,类型的表述应该是:一个返回值为int,有两个int参数的Block
// ^起到标示符的作用,告诉编译器,我们定义了一个Block
// blockSum叫做block变量,即存放block值得变量(整形变量存放的是整形变量)
// 初值,也叫block值,上例中的^(int x, int y){return x +y},也就是block的值
// 因为block是匿名函数,没有函数名,所以没办法借助函数名去执行函数,因此,初值只能是函数的实现体
// block值得格式:^返回类型(参数列表){函数体}
// 返回类型可以省略,以函数体里的return的结果作为返回类型
// 如果block类型里面没有参数,Block的值也不需要参数
// 此外也可以通过Typedef定义一个block
typedef int(^ myblocks)(int ,int );
//使用时
myblock block = ^(int a, int b){
return a + b;
};
int a = block(12, 21);
******block注意事项下回分解**************************************