繁体   English   中英

enumerateObjectsUsingBlock内部的计数器

[英]counter inside enumerateObjectsUsingBlock

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

__block CGFloat height = someInitialValue;

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

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

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

您在这里增加代码的height height__block标识符标记,这意味着可以在一个块内进行设置。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM