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