第二章 2.2.4 __block说明符

上一节截获自动变量值,只能保存在执行Block语法时表达式中使用的外部自动变量瞬间的值,保存后不能修改外部自动变量的值。
想要在Block语法的表达式中修改外部自动变量的值,需要自动变量附加__block说明符。

__block int val = 1;

void (^blk) (void) = ^void (void) {
    val = 5;
};

printf("val = %d\n",val);

blk();

printf("val = %d\n",val);

输出:
val = 1
val = 5

说明:
使用附有__block说明符的自动变量可在Boclk中被赋值修改,这样的变量称为__block变量。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容