NSMutableArray - Add array at start

Adnan picture Adnan · Mar 18, 2014 · Viewed 10.7k times · Source

It is a simple pull to refresh case. I have data loaded into table and have a mutable data array at back-end, I receive a array of new data and want to add this complete array at start of existing array.

One workaround is to create new array with new arrived data and then add previous array into it using addObjectsFromArray: method. Is there some workaround to add new data array to the start of previous array directly?

Answer

nhgrif picture nhgrif · Mar 18, 2014

First, build an NSIndexSet.

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

Now, make use of NSMutableArray's insertObjects:atIndexes:.

[oldArray insertObjects:newArray atIndexes:indexes];

Alternatively, there's this approach:

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