如何从NSMutableArray中只删除一个对象的实例?

时间:2012-08-15 04:08:18

标签: objective-c cocoa-touch nsmutablearray

Apple文档说- (void)removeObject:(id)anObject方法从NSMutableArray中删除了所有出现的给定对象。

有没有办法只从阵列中删除一个对象?

3 个答案:

答案 0 :(得分:15)

如果您要删除一个特定的实例,该实例具有唯一的内存地址,否则将与其他实例进行比较,您将使用removeObjectIdenticalTo:

如果要删除阵列中适合该帐单的第一个对象,请使用找到最低索引的indexOfObject:,然后使用removeObjectAtIndex:您还可以使用indexesOfObjectsPassingTest:获取包含相等对象的所有索引的列表,作为NSIndexSet,然后从那里选择一个 - 也许lastIndex,例如

答案 1 :(得分:4)

这很简单: [yourArray removeObjectAtIndex:[yourArray indexOfObject:yourObject]]

答案 2 :(得分:1)

是的,您想要找到要删除的特定对象的索引并调用:

- (void)removeObjectAtIndex:(NSUInteger)index

请参阅Apple文档了解NSMutableArray here