0

我有一组索引 setOFIndex = {0,1,3,4}。现在我想从 NSMutableArray 中删除这组索引?

这样做的有效方法是什么?

我检查了任何库方法,但找不到任何方法。我不能直接使用 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:

将您的 Indexset 转换为数组,然后使用上述方法。

编辑:文档中非常直接的示例。

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 回答