遍历数组时的iOS Block Scoping

时间:2012-09-25 16:45:54

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

我试图遍历一个数组,以便计算一个值,由下面的代码建模:

double foo = 0;

[sortedKeys enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
  foo += (NSNumber*)[obj doSomething].doubleValue
}];

但是我得到一个错误,foo没有适当的范围,我怎么能设置foo以便块看到它并且可以在它运行时修改它。

1 个答案:

答案 0 :(得分:2)

您应该在声明中添加__block,以便能够从块内部修改变量:

__block double foo = 0;