2012-10-01 68 views

回答

5

如果阵列是一个NSArray,然后你不能删除对象,因为它是不可变的。你需要做一些像Neo的回答。如果阵列是一个NSMutableArray,您可以使用下面的行率先拿到20个项目:

[myArray removeObjectsInRange:NSMakeRange(20, myArray.count - 20)]; 
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]; 
+0

删除第一个20 ...这是错的 – jussi

+0

雅,你为什么认为它不? – Neo

+0

他想删除第20个元素以外的所有元素。 – jussi

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]; 
相关问题