我有一个NSMutableArray,只需要其中的[0:5]个对象。有没有简单的方法来切片?我是否可以删除索引之后的所有对象?我能否将子数组复制到另一个NSMutableArray中?
我有一个NSMutableArray,只需要其中的[0:5]个对象。有没有简单的方法来切片?我是否可以删除索引之后的所有对象?我能否将子数组复制到另一个NSMutableArray中?
- (NSArray *)subarrayWithRange:(NSRange)range
是一个实例方法,用于获取数组的子集。NSArray* slicedArray = [wholeArray subarrayWithRange:NSMakeRange(0, 5)];
NSMakeRange(1, 5)
表示slicedArray
将包含wholeArray
中从索引1到6的对象。 - James BedfordNSRangeException
,您应该使用:[wholeArray subarrayWithRange:NSMakeRange(0, MAX(wholeArray.count, 5))]
。 - SzuMIN
而不是MAX
来防止崩溃 :) - Max ChuquimiaslicedArray
包含的是 wholeArray
中索引为 1 到 5 的对象,而不是 1 到 6。 - xZenon我看到 James Bedford 已经回答了如何提取一系列索引的方法。如果要从 NSMutableArray 中删除一系列对象,可以使用 [wholeArray removeObjectsInRange:...]
。如果要删除特定索引后的所有对象,则可以创建一个适当的范围,如 NSMakeRange(index, wholeArray.count - index)
。