iOS block的一些总结

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

你可能感兴趣的:(iOS block的一些总结)