0

私は一連のインデックス setOFIndex = {0,1,3,4} を持っています。このインデックスのセットを NSMutableArray から削除したいですか?

それを行う効率的な方法は何ですか?

ライブラリメソッドをチェックしましたが、見つかりませんでした。削除するたびに配列が1つずつシフトされるため、removeObjectAtIndexを直接使用することはできません。

4

3 に答える 3

3
NSMutableArray *array = [NSMutableArray arrayWithObjects: @"one", @"a", @"two", @"b", @"three", @"four", nil];
NSMutableIndexSet *indexes = [NSMutableIndexSet indexSetWithIndex:1];
[indexes addIndex:3];
[array removeObjectsAtIndexes:indexes];
NSLog(@"array: %@", array);

// Output: array: (one, two, three, four)

ドキュメントを読む

于 2012-12-05T08:19:47.127 に答える
3

NSMUTABleArray のメソッドを使用する必要があります。removeObjectsAtIndexes: これはドキュメントのコードです。

NSMutableArray *array = [NSMutableArray arrayWithObjects: @"one", @"a", @"two", @"b", @"three", @"four", nil];

NSMutableIndexSet *indexes = [NSMutableIndexSet indexSetWithIndex:1];

[indexes addIndex:3];

[array removeObjectsAtIndexes:indexes];

NSLog(@"array: %@", array);

なぜ人々がドキュメントを読まないのか、私にはまったく理解できません。

于 2012-12-05T08:20:49.340 に答える
0

使ってみませんか

– removeObjectsInArray:

インデックスセットを配列に変換してから、上記の方法を使用します。

編集:ドキュメントからの非常に簡単な例。

NSMutableArray *array = [NSMutableArray arrayWithObjects: @"one", @"a", @"two", @"b", @"three", @"four", nil];

NSMutableIndexSet *indexes = [NSMutableIndexSet indexSetWithIndex:1];

[indexes addIndex:3];

[array removeObjectsAtIndexes:indexes];

NSLog(@"array: %@", array);
于 2012-12-05T08:18:43.837 に答える