在block内如何修改block外部变量
默认情况下,在block中访问的外部变量是复制过去的,即:写操作不对原变量生效。但是你可以加上__block来让其写操作生效,示例代码如下:
1
2
3
4
5
6
|
__block int a = 0; void (^foo)(void) = ^{ a = 1; } f00(); //这里,a的值被修改为1 |
默认情况下,在block中访问的外部变量是复制过去的,即:写操作不对原变量生效。但是你可以加上__block来让其写操作生效,示例代码如下:
1
2
3
4
5
6
|
__block int a = 0; void (^foo)(void) = ^{ a = 1; } f00(); //这里,a的值被修改为1 |