NSMutableArray - 在开始时添加数组

时间:2014-03-18 22:49:33

标签: ios ios7 nsmutablearray append

这是一个简单的刷新案例。我将数据加载到表中并在后端有一个可变数据数组,我收到一个新数据数组,并希望在现有数组的开头添加这个完整的数组。

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

5 个答案:

答案 0 :(得分:57)

首先,构建一个NSIndexSet

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

现在,请使用NSMutableArray的{​​{1}}。

insertObjects:atIndexes:

或者,有这种方法:

[oldArray insertObjects:newArray atIndexes:indexes];

答案 1 :(得分:2)

NSMutableArray提供insertObjects:atIndexes:方法,但您可以更轻松地使用addObjectsFromArray:建议的方式添加。

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

创建新阵列可能是您的最佳解决方案,但您也可以使用循环

NSUInteger index;

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

答案 4 :(得分:0)

只是简单的方法:

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