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