计数器内部enumerateObjectsUsingBlock

时间:2014-02-06 10:28:16

标签: ios iphone objective-c

我需要遍历NSArray来计算一些指标(总高度)。这是我的代码:

__block CGFloat height = someInitialValue;

[messages enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    if (condition1)
        height += someValue;

    if (condition2)
        height += someValue;
}];

每次迭代都以height = someInitialValue开头。但我想继续增加height。是否可以使用块枚举计算总高度,还是必须使用快速枚举?

2 个答案:

答案 0 :(得分:1)

您在此处的代码中增加了heightheight标有__block标识符,表示可以在块内设置。

NSUInteger idx块参数是循环的计数器(如果需要)。

在这种情况下似乎没有理由使用块枚举。

答案 1 :(得分:0)

也许'someValue'为零,每次迭代都会看到初始值。