objective c - ¿La enumeración rápida en Objective-C garantiza el orden de iteración?
arrays iteration (2)
¿Puedo esperar que vaya desde el principio de una matriz hasta el final en orden? No se puede encontrar nada en los documentos sobre esto.
es decir,
for (id val in array)
{
NSLog(@"%@", val);
}
siempre va a imprimir lo mismo que
for (int i = 0; i < [array count]; ++i)
{
NSLog(@"%@", [array objectAtIndex:i]);
}
De la documentación Objective-C de Apples sobre enumeración rápida:
Para colecciones o enumeradores que tienen un orden bien definido, como NSArray o instancia NSEnumerator derivada de una matriz, la enumeración continúa en ese orden, por lo que simplemente contar las iteraciones le dará el índice adecuado en la colección si lo necesita.
Una vez más, he encontrado la respuesta justo después de publicarla. Mi referencia anterior no mencionaba el orden de iteración, pero sí lo hacía en línea. La matriz de hecho se itera en orden.