我有一个可能有数百个元素的NSArray。我想删除除了第一个元素之外的所有元素。想法?
答案 0 :(得分:5)
如果您的数组是NSArray,那么您无法移除对象,因为它是不可变的。你需要做一些像Neo的回答。如果您的数组是NSMutableArray,则可以使用以下行获取前20个项目:
[myArray removeObjectsInRange:NSMakeRange(20, myArray.count - 20)];
答案 1 :(得分:1)
您可以提取前20个项目,然后重新分配源数组:
NSArray *myHugeArray = [[NSArray alloc] initWithItems:...] // An array with, say, 1000 items
NSArray *tmpArray = [myHugeArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 20)]];
[myHugeArray release];
myHugeArray = [tmpArray retain];
答案 2 :(得分:0)
假设您的NSArray是yourArray,请执行此操作
NSMutableArray *temp=[[NSMutableArray alloc]initWithArray:yourArray];
for(int i=0; i<20;i++){
[temp addObject:[yourArray objectAtIndex:i]];
}
yourArray=[NSArray arrayWithArray:temp];