在block内如何修改block外部变量

默认情况下,在block中访问的外部变量是复制过去的,即:写操作不对原变量生效。但是你可以加上__block来让其写操作生效,示例代码如下:

1
2
3
4
5
6
__block int a = 0;
void  (^foo)(void) = ^{ 
    a = 1; 
}
f00(); 
//这里,a的值被修改为1
posted @ 2017-08-29 17:36  Root_z  阅读(334)  评论(0)    收藏  举报