¿Está documentado en cualquier lugar que la matriz `return_WithOwner` devuelva se ordera de una manera específica?

Recientemente he visto un ejemplo de código que utilizó instantiateWithOwner para cargar las celdas para un UITableView esta manera:

cell = [nib instantiateWithOwner:self options:nil][0];

mientras que es más limpio y más compacto que tener una salida de propiedad como una celda prototipo, me pregunto si se garantiza (también se documenta) que el primer object de nivel superior en el generador de interfaces siempre será el primero en la matriz devuelto por instantiateWithOwner . Puede ser el caso en este punto, pero si no está documentado (indefinido), podría cambiar en el futuro, causando problemas para nibs que tienen más de un object de nivel superior e instanciar celdas como esta.

No puedo encontrar en ninguna parte que documente el order de la matriz devuelto por instantiateWithOwner específicamente, pero la documentation habla sobre el order en que el código de carga por subibaja llama awakeFromNib :

El order en el que el código de carga de nib llama a los methods de objects awakeFromNib no está garantizado.

Supongo que esto significa que el order de la matriz devuelto por instantiateWithOwner tampoco está garantizado. Para garantizar el order al extraer varios objects de un xib, generalmente empiezo configurando la label de cada object a través del generador de interfaces con un número único (ascendente). Entonces, su código se vería así:

 NSArray *cells = [[nib instantiateWithOwner:self options:nil] sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"tag" ascending:YES]]]; cell = cells[0];