Objective-C中的快速枚举是否保证了迭代的顺序?

Ran*_*cks 34 arrays iteration objective-c fast-enumeration

我能指望它从数组的开头到结尾的顺序吗?在文档中找不到任何关于此的内容.

即是

for (id val in array)
{
   NSLog(@"%@", val);
}
Run Code Online (Sandbox Code Playgroud)

总是打印出来的

for (int i = 0; i < [array count]; ++i)
{
   NSLog(@"%@", [array objectAtIndex:i]);
}
Run Code Online (Sandbox Code Playgroud)

Geo*_*che 60

从Apples 关于快速枚举的Objective-C文档:

对于有一个明确的订单,如从上按顺序一个数组枚举所得产生的NSArray或NSEnumerator实例,因此简单地计算迭代会给你适当的索引集合,如果你需要它集合或枚举.

  • 推论是具有未定义顺序的集合(即`NSSet`和`NSDictionary`)具有未定义的迭代顺序. (7认同)