一 ,block 的定义格式
返回值类型(^block变量名)(形参列表) = (形参列表) {
};
默认情况下,block内部是不能修改外面的局部变量, block内部可以修改使用__block修饰的局部变量.
block的模式
1. 无参数无返回值的block
void(^dosomething)() = ^(){
nslog(@"dosomething");
};
dosomething();
2. 有参数无返回值的block
void(^dosomething)(int,int)= ^(int a, int b){
nslog(@"%d + %d", a+b);
}
dosomething(10,10);
3.有参数有返回值的block
nsstring *(^logblock)(nsstring *, nsstring *) = ^(nsstring *A, nsstring *B){
return [nsstring stringwithFormat:@"%@ %@",A,B];
};
nslog(@"%@", logblock(@"hello", @"你好"));
4 block 结合typedef使用
typedef void(^changecolor)(id);
网友评论