OC中Block的使用

来源:互联网 发布:mac下载汉仪颜体 编辑:程序博客网 时间:2024/04/30 16:42

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);

0 0