本文選自StackOverflow(簡稱:SOF)精選問答彙總系列文章之一,本系列文章將爲讀者分享國外最優質的精彩問與答,供讀者學習和了解國外最新技術,本文講陣列問題。
問題:
這是一個簡單的下拉刷新。也就是說,我把數據下載到表格,後臺有可變陣列。我收到了新數據的陣列,並且想把這段完整的陣列添加到現有陣列的初始部分。
一種解決方法是使用新到達的數據創建新的陣列,然後用addObjectsFromArray: 方法把先前的陣列添加到它。有沒有方法直接把新數據陣列添加到先前陣列的初始部分?
答案:
首先,建立一個NSIndexSet.
1
2
|
NSIndexSet *indexes = [NSIndexSet indexSetWithIndexesInRange: NSMakeRange(0,[newArray count])]; |
現在,使用NSMutableArray的 insertObjects:atIndexes:.
1
|
[oldArray insertObjects:newArray atIndexes:indexes]; |
作爲選擇之一,還有這個方法:
1
|
oldArray = [[newArray arrayByAddingObjectsFromArray:oldArray] mutableCopy]; |
NSMutableArray 提供insertObjects:atIndexes: 方法,但是如果使用addObjectsFromArray:的話,採用附加的方法會更簡單。
-insertObject:atIndexes: 就足夠了,而且我認爲比-addObjects 以及交換陣列更高效。它最終看起來可能是這個樣子:
1
|
[existingResults addObjects:newResults atIndexes:[NSIndexSet indexSetWithIndexesIn |
創建一個新的陣列或許是最好的解決方法,但是你還可以使用循環:
1
2
3
4
5
6
7
8
|
NSUInteger index; index = 0; for ( id item
in sourceArray ) { [destArray insertObject:item atIndex:index]; index++; } |
原文鏈接:NSMutableArray
文章選自StackOverFlow社區,鑑於其內容對於開發者有所幫助,現將文章翻譯於此,供大家參考及學習。9Tech將每日持續更新,讀者可點擊StackOverflow(簡稱:SOF)精選問答彙總,查看全部譯文內容。同時,我們也招募志同道合的技術朋友共同翻譯,造福大家!