NSMutableArray – 在开始时添加数组

刷新情况是一个简单的拉动。 我有数据加载到表中,并在后端有一个可变数据数组,我收到一个新的数据数组,并希望在现有数组的开始添加这个完整的数组。

一种解决方法是使用新到达的数据创build新数组,然后使用addObjectsFromArray:方法将以前的数组添加到其中。 是否有一些解决方法,直接添加新的数据数组到前一个数组的开始?

首先,build立一个NSIndexSet

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

现在,使用NSMutableArrayinsertObjects:atIndexes:

 [oldArray insertObjects:newArray atIndexes:indexes]; 

或者,有这种方法:

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

NSMutableArray提供了insertObjects:atIndexes:方法,但是使用addObjectsFromArray:方法可以更容易地追加你的build议。

-insertObject:atIndexes:很简单,应该(我相信)比使用-addObjects和交换数组更有效率。 它可能最终会看起来像这样:

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

创build一个新的数组可能是你最好的解决scheme,但你也可以使用一个循环

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

只是简单的方法:

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