NSMutableArray – 在开始阶段添加阵列

这是一个简单的下拉刷新。也就是说,我把数据下载到表格,后台有可变阵列。我收到了新数据的阵列,并且想把这段完整的阵列添加到现有阵列的初始部分。

一种解决方法是使用新到达的数据创建新的阵列,然后用addObjectsFromArray: 方法把先前的阵列添加到它。有没有方法直接把新数据阵列添加到先前阵列的初始部分?

原问题:NSMutableArray - Add array at start

阅读 6.9k
4 个回答
新手上路,请多包涵

首先,建立一个NSIndexSet.

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

现在,使用NSMutableArray的 insertObjects:atIndexes:.

[oldArray insertObjects:newArray atIndexes:indexes];

作为选择之一,还有这个方法:

oldArray = [[newArray arrayByAddingObjectsFromArray:oldArray] mutableCopy]
NSMutableArray 提供insertObjects:atIndexes: 方法,但是如果使用addObjectsFromArray:的话,采用附加的方法会更简单。 

-insertObject:atIndexes:就足够了,而且我认为比-addObjects以及交换阵列更高效。它最终看起来可能是这个样子:

[existingResults addObjects:newResults atIndexes:[NSIndexSet indexSetWithIndexesIn
新手上路,请多包涵

创建一个新的阵列或许是最好的解决方法,但是你还可以使用循环:

NSUInteger index;

index = 0;
for ( id item in sourceArray )
{
    [destArray insertObject:item atIndex:index];
    index++;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题