我有一些对象,其中的一些对象具有相同的值(例如用户的guid)。
我希望找到所有具有相同指南的对象并删除所有对象,而不是先删除。
最好的方法是什么?
答案 0 :(得分:0)
您可以使用NSMUtableArray的removeObject方法。请注意,您的对象应该适当地实现isEqual方法。
根据说明:
此方法使用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--;
}
}