在哪个命令目标-c块将执行?

时间:2014-01-02 10:51:19

标签: ios objective-c objective-c-blocks

我是目标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);

1 个答案:

答案 0 :(得分:3)

答案将是

31和31

因为块创建时就是copys环境,这就是原因 在此之后,

blockmethod = ^(int a, int b) { return a+b+c;};

此块的变量c的值始终为10。 偶数值更改为11但块已将该变量复制为10。

并且按顺序按顺序触发块(与函数相同)