用来封装和在运行中保存代码,保证能随时随地调用内部代码,效率高。
定义:
1> 两个参数
int (^SumBlock) (int,int) = ^(int a,int b){
return a+b;//定义一个block类型变量,求和
}
2> 无参数
int (^SumBlock) () = ^(){
return 99;
}
3> 无参数省略
int (SumBlock) () = ^{
return 99;
}
4> 利用typedef定义block类型
typedef int (^MyBlock) (int,int);
5> 注意
int main()
{
int a = 10;
__block int b = 20;
void (^block)();
block = ^{
// block内部可以访问外面的变量
//NSLog(@"a = %d", a);
// 默认情况下,block内部不能修改外面的局部变量
// a = 20;
// 给局部变量加上__block关键字,这个局部变量就可以在block内部修改
b = 25;
};
block();
} |
|