NSMutableArray – Agregar matriz al inicio

Es una simple extracción para actualizar el caso. Tengo datos cargados en la tabla y tengo una matriz de datos mutable en el back-end, recibo una matriz de datos nuevos y quiero agregar esta matriz completa al inicio de la matriz existente.

Una solución consiste en crear una nueva matriz con nuevos datos llegados y luego agregar una matriz anterior en ella mediante addObjectsFromArray: method. ¿Hay alguna solución para agregar nueva matriz de datos al inicio de la matriz anterior directamente?

Primero, construye un NSIndexSet .

 NSIndexSet *indexes = [NSIndexSet indexSetWithIndexesInRange: NSMakeRange(0,[newArray count])]; 

Ahora, utilice los NSMutableArray de insertObjects:atIndexes:

 [oldArray insertObjects:newArray atIndexes:indexes]; 

Alternativamente, existe este enfoque:

 oldArray = [[newArray arrayByAddingObjectsFromArray:oldArray] mutableCopy]; 

NSMutableArray ofrece los insertObjects:atIndexes: pero es más fácil agregar la sugerencia de usar addObjectsFromArray:

-insertObject:atIndexes: es bastante fácil, y debería (creo) ser más eficiente que usar -addObjects y swapping arrays. Probablemente terminaría pareciendo algo como esto:

 [existingResults addObjects:newResults atIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, newResults.count)]]` 

Crear una nueva matriz es probablemente su mejor solución, pero también puede usar un bucle

 NSUInteger index; index = 0; for ( id item in sourceArray ) { [destArray insertObject:item atIndex:index]; index++; } 

Simplemente forma simple:

 NSMutableArray *arrayTmp = [firstArr addObjectsFromArray:myArray]; myArray = arrayTmp;