2011-03-13 92 views
20

我有一個NSMutableArray,只需要對象[0:5]。有沒有簡單的方法來切片?我可以在索引後刪除所有對象嗎?我可以將一個子數組複製到另一個NSMutableArray嗎?如何切片NSMutableArray

+3

感謝球員,我在看NSMutableArray,並沒有看到這些參考。 – Mark 2011-03-13 23:07:44

回答

61

使用實例方法- (NSArray *)subarrayWithRange:(NSRange)range

例如:

NSArray* slicedArray = [wholeArray subarrayWithRange:NSMakeRange(0, 5)]; 
+14

請注意,NSMakeRange(0,5)並不意味着'切片位置0到5',這意味着'採取從0開始並且遞增5的切片。它與0:5沒有區別,但如果你做1:5,區分就變得很重要。 – 2012-08-27 11:08:21

+4

是的,所以使用'NSMakeRange(1,5)'意味着'slicedArray'將包含來自索引1到6的'wholeArray'的對象。 – 2012-09-04 03:03:45

+2

爲了避免少於5個元素的'NSRangeException',你應該使用''[ wholeArray subarrayWithRange:NSMakeRange(0,MAX(wholeArray.count,5))]' – Szu 2015-01-30 09:43:30

16

我看到詹姆斯·貝德福德已經回答瞭如何提取一系列指標。要從NSMutableArray中刪除範圍內的對象,可以使用[wholeArray removeObjectsInRange:...]。要刪除特定索引後的所有對象,可以創建一個適當的範圍,如NSMakeRange(index, wholeArray.count - index)

+1

簡潔,簡單且有幫助。感謝你的回答 – mattsven 2014-09-19 03:08:46