*block要掌握的东西
1。如何定义block变量
int (^sumBlock)(int,int);
void (^myBlock)();
*如何利用block封装代码
^(){
NSLog(@"这是第一种封装代码方式,无參无返回值");
};
^{
NSLog(@"这是第二种封装代码方式,无參无(无()号)返回值");
};
// 这是一个有参有返回值的block封装
^(int a,int b){
return a+b;
};
*block访问外面变量
1.block内部可以访问外部的变量
2.默认情况下,block内部不能修改外部的局部变量
3.给局部变量加上__block关键字,这个局部变量就可以在block内部修改
*利用typedef定义block类型
typedef int(^MyBlock)(int,int);
// 以后就可以利用MyBlock这种类型来定义block变量
MyBlock sum;
MyBlock sum1,minus1,multiply1;
sum1 = ^(int a,int b){
return a+b;
}; |