__block int i = 0;
int (^count)(void) = ^ {
i += 1;
return i;
};
NSLog(@"%d", count()); // 1
NSLog(@"%d", count()); // 2
NSLog(@"%d", count()); // 3
int q = 42;
__block int ssy = 1;
void (^block)() = ^() {
printf("1111111111111111 %d\n", q); //42
printf("2222222222222222 %d\n", ssy);//1 2
};
block();
//输出 42 1
ssy = 2;
q = 1;
block();
//输出 42 2
block
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 简介 block可以当做匿名函数,可以在两个对象间将语句当做数据来进行传递。具有封闭性closure,方便取得上下...
- 使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首...
- 本章目录 Block截取自动变量 __block说明符 Block存储域 __block变量存储域 Block中截...
- __block修饰对象类型 编译结果: 结构示意图: __block修饰的对象数据类型的变量也能实现block内外...