我是目标C的新手。块将如何执行?
int c = 10;
int (^blockmethod) (int, int);
blockmethod = ^(int a, int b) { return a+b+c;};
int x = blockmethod (10,11);
c = 11;
int y = blockmethod(10,11);
NSLog(@"%d %d",x,y);
答案 0 :(得分:3)
答案将是
31和31
因为块创建时就是copys环境,这就是原因 在此之后,
blockmethod = ^(int a, int b) { return a+b+c;};
此块的变量c的值始终为10。 偶数值更改为11但块已将该变量复制为10。
并且按顺序按顺序触发块(与函数相同)