枚举对象数组

时间:2014-06-10 07:40:20

标签: ios arrays xcode nsmutablearray nsarray

我有一些对象,其中的一些对象具有相同的值(例如用户的guid)。

我希望找到所有具有相同指南的对象并删除所有对象,而不是先删除。

最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用NSMUtableArray的removeObject方法。请注意,您的对象应该适当地实现isEqual方法。

[NSMutableArray removeObject]

根据说明:

  

此方法使用indexOfObject:来查找匹配项,然后删除   他们通过使用removeObjectAtIndex:。因此,确定匹配   对象对isEqual:message 的响应的基础。如果   array不包含anObject,该方法没有效果(尽管它   确实会产生搜索内容的开销。)

答案 1 :(得分:0)

所以,首先你的数组需要是可变的NSMutableArray,然后过程是:

  • 考虑实际对象;
  • 检查是否存在与其他对象相同的另一个对象;
  • 如果是,删除相等的对象包括实际的

-

NSMutableArray *arr = [NSMutableArray arrayWithArray:@[@1, @2, @3, @2, @5, @3]];

for(int i=0; i<[arr count]; i++) {
    id obj = arr[i];
    if([arr indexOfObject:obj inRange:NSMakeRange(i+1, [arr count]-i-1)] != NSNotFound) {
        [arr removeObject:obj inRange:NSMakeRange(i, [arr count]-i)];
        i--;
    }
}