如果不block 不用copy, 为什么__block变量也变了?
来源:7-4 Block内存管理相关面试问题

慕莱坞1578890
2021-10-21
__block int var = 10;
int (^ aa) (int num) = ^int(int num){
return num*var;
};
var = 6;
int x = aa(5);
NSLog(@"result = %d", x);
问一下这什么这样在栈上定义的block 执行的值也是30而不是50?
写回答
1回答
-
于海
2021-10-25
定义阶段并没有发生变量截获。可以按照课程提供的clang方式编译下看看这段代码的编译结果
022021-12-04
相似问题