Я могу ожидать, что это пойдет от запуска массива в конец в порядке? Ничего не может найти в документах об этом.
т.е.
for (id val in array)
{
NSLog(@"%@", val);
}
всегда собираясь распечатывать то же как
for (int i = 0; i < [array count]; ++i)
{
NSLog(@"%@", [array objectAtIndex:i]);
}
Из документации Objective-C от Apples о быстром перечислении:
Для коллекций или перечислителей, которые имеют четко определенный порядок - например, NSArray или экземпляр NSEnumerator, полученный из массива - перечисление происходит в этом порядке, поэтому простой подсчет итераций даст вам правильный индекс в коллекции, если он вам нужен.
Я снова нашел ответ сразу после публикации. В моей старой справке не упоминался порядок итерации, но в онлайн-версии упоминался. Массив действительно повторяется по порядку.