默认情况下,在程序块中访问的外部变量是复制过去的,即写操作不对原变量生效。但是你可以 加上 __block来让其写操作生效,示例代码如下:
__block int a = 0; void (^foo)(void) = ^{ a = 1; } foo();
GCD 中的变量
原文:http://www.cnblogs.com/yybz/p/4043648.html