Подтвердить что ты не робот

Быстрое перечисление в Objective-C гарантирует порядок итераций?

Можно ли ожидать, что он будет идти от начала массива до конца по порядку? Не могу найти что-либо в документах об этом.

то есть. это

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

всегда будет распечатываться так же, как

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

Ответ 1

Из Apples Objective-C документация по быстрому перечислению:

Для коллекций или счетчиков, которые имеют четко определенный порядок - например, NSArray или экземпляр NSEnumerator, полученный из массива - перечисление выполняется в этом порядке, поэтому простое подсчет итераций даст вам правильный индекс в коллекцию, если вам это нужно.

Ответ 2

Я снова нашел ответ сразу после публикации. В моей старой ссылке не упоминалось о порядке итераций, но в онлайн-режиме. Массив действительно итерирован по порядку.