NSMutableArray – 在開始階段添加陣列(轉)

本文選自StackOverflow(簡稱:SOF)精選問答彙總系列文章之一,本系列文章將爲讀者分享國外最優質的精彩問與答,供讀者學習和了解國外最新技術,本文講陣列問題。

問題:

Adnan

這是一個簡單的下拉刷新。也就是說,我把數據下載到表格,後臺有可變陣列。我收到了新數據的陣列,並且想把這段完整的陣列添加到現有陣列的初始部分。

一種解決方法是使用新到達的數據創建新的陣列,然後用addObjectsFromArray: 方法把先前的陣列添加到它。有沒有方法直接把新數據陣列添加到先前陣列的初始部分?

答案:

nhgrif

首先,建立一個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];

Wain

NSMutableArray 提供insertObjects:atIndexes: 方法,但是如果使用addObjectsFromArray:的話,採用附加的方法會更簡單。

Sean D.

-insertObject:atIndexes: 就足夠了,而且我認爲比-addObjects 以及交換陣列更高效。它最終看起來可能是這個樣子:

1
[existingResults addObjects:newResults atIndexes:[NSIndexSet indexSetWithIndexesIn

user3386109

創建一個新的陣列或許是最好的解決方法,但是你還可以使用循環:

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)精選問答彙總,查看全部譯文內容。同時,我們也招募志同道合的技術朋友共同翻譯,造福大家!

發佈了2 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章