NSMutableArray – Ajouter un tableau au début

C'est un simple pull pour rafraîchir le cas. J'ai des données chargées dans la table et ai un tableau de données mutable au back-end, je reçois un tableau de nouveldatatables et je veux append ce tableau complet au début du tableau existant.

Une solution de contournement consiste à créer un nouveau tableau avec datatables nouvellement arrivées, puis append le tableau précédent à l'aide de la méthode addObjectsFromArray: Est-il une solution de contournement pour append un nouveau tableau de données au début du tableau précédent directement?

D'abord, construisez un NSIndexSet .

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

Maintenant, faites usage de NSMutableArray de NSMutableArray insertObjects:atIndexes:

 [oldArray insertObjects:newArray atIndexes:indexes]; 

Alternativement, il y a cette approche:

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

NSMutableArray offre la insertObjects:atIndexes: mais il est plus facile d'append comme vous l'avez suggéré en utilisant addObjectsFromArray:

-insertObject:atIndexes: est assez facile, et devrait (je crois) être plus efficace que l'utilisation de -addObjects et de swap-arrays. Ça finirait probablement par ressembler à ceci:

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

La création d'un nouveau tableau est probablement la meilleure solution, mais vous pouvez également utiliser une boucle

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

Juste moyen simple:

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