这是一个简单的下拉刷新案例。我已经在表格中加载了数据,并且在后端有一个可变的数据数组,我收到一个新数据数组并希望将这个完整的数组添加到现有数组的开头。
一种解决方法是创建一个新数组来存储新到达的数据,然后使用addObjectsFromArray:
方法将之前的数组添加到它里面。是否有一种直接将新数据数组添加到之前数组的开头的方法?
这是一个简单的下拉刷新案例。我已经在表格中加载了数据,并且在后端有一个可变的数据数组,我收到一个新数据数组并希望将这个完整的数组添加到现有数组的开头。
一种解决方法是创建一个新数组来存储新到达的数据,然后使用addObjectsFromArray:
方法将之前的数组添加到它里面。是否有一种直接将新数据数组添加到之前数组的开头的方法?
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 indexSetWithIndexesInRange:NSMakeRange(0, newResults.count)]]`
NSUInteger index;
index = 0;
for ( id item in sourceArray )
{
[destArray insertObject:item atIndex:index];
index++;
}
只需要简单的方法:
NSMutableArray *arrayTmp = [firstArr addObjectsFromArray:myArray];
myArray = arrayTmp;