2

おそらく数百の要素を持つNSArrayがあります。最初の20個を除くすべての要素を削除したいと思います。アイデア?

4

3 に答える 3

5

配列がNSArrayの場合、オブジェクトは不変であるため、オブジェクトを削除することはできません。あなたはネオの答えのようなことをする必要があるでしょう。配列がNSMutableArrayの場合、次の行を使用して最初の20個のアイテムを取得できます。

[myArray removeObjectsInRange:NSMakeRange(20, myArray.count - 20)];
于 2012-10-01T15:35:40.633 に答える
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];
于 2012-10-01T11:13:45.360 に答える
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];
于 2012-10-01T11:12:30.540 に答える