Does fast enumeration in Objective-C guarantee the order of iteration?

荒凉一梦 提交于 2019-11-27 15:46:59

问题


Can I expect it to go from the start of an array to the end in order? Can't find anything in the docs about this.

i.e. is

for (id val in array)
{
   NSLog(@"%@", val);
}

always going to print out the same as

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

回答1:


From Apples' Objective-C documentation on fast enumeration:

For collections or enumerators that have a well-defined order—such as NSArray or NSEnumerator instance derived from an array—the enumeration proceeds in that order, so simply counting iterations will give you the proper index into the collection if you need it.




回答2:


Once again I've found the answer right after posting. My old reference didn't mention the order of iteration, but the online one did. The array is indeed iterated in order.



来源:https://stackoverflow.com/questions/2777607/does-fast-enumeration-in-objective-c-guarantee-the-order-of-iteration

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!