block使用注意

2016-08-02  本文已影响0人  飞哥3124

1、定义格式

void (^block)()=^{      //无参无返回值

NSLog(@“helloworld”);

}

int (^myBlock)(int ,int )=^(int x,int y){       //有参有返回值,此时myBlock为变量名

return x+y;

}

2、typedef用法

typedef  int(^myBlock)(int ,int ); //此时myBlock为类型

myBlock b1,b2;

3、访问外部变量

当定义block的时候,会把外部变量以const(只读)的方式复制一份存放到block的所在内存中。

(1)不允许修改外部变量

int m=10;

void (^block)()=^{

m=100;                //错误

NSLog(@“m=%d”,m);

}

(2)允许修改

__block int m=10;

void (^block)()=^{

m=100;                //正确

NSLog(@“m=%d”,m);

}

NSLog(@“m=%d”,m);   //此时m=100

上一篇 下一篇

猜你喜欢

热点阅读