NSArray和快速枚举,总是按索引顺序排列?

时间:2012-05-21 16:37:11

标签: objective-c ios

数组的快速枚举是否总是按索引顺序排列?

for (NSDictionary *zone in myArray)
{
    //do code
}

总是从索引位置0,1,2,...,n?

枚举

我更喜欢快速枚举而不是标准for循环,因为它使代码更容易阅读。

2 个答案:

答案 0 :(得分:17)

是的,它会:

  

对于具有明确定义的订单的集合或枚举器 - 例如   从数组派生的NSArray或NSEnumerator实例   枚举按此顺序进行,因此只需计算迭代次数   如果需要,可以为您提供正确的索引索引。

docs here

答案 1 :(得分:4)

要快速枚举带索引的数组,请使用块:

[myArray enumerateObjectsUsingBlock:^(NSObject *object, NSUInteger idx, BOOL *stop) {
   ...
   // idx is myArray's index
}];