我试图遍历一个数组,以便计算一个值,由下面的代码建模:
double foo = 0;
[sortedKeys enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
foo += (NSNumber*)[obj doSomething].doubleValue
}];
但是我得到一个错误,foo没有适当的范围,我怎么能设置foo以便块看到它并且可以在它运行时修改它。
答案 0 :(得分:2)
您应该在声明中添加__block
,以便能够从块内部修改变量:
__block double foo = 0;