Cocoa - 枚举可变数组,删除对象

War*_*ard 0 cocoa enumerate duplicates nsmutablearray

我有一个可变数组,其中包含可变字典,其中包含键的纬度,经度和id的字符串.一些纬度和经度值是相同的,我想从数组中删除重复项,所以我每个位置只有一个对象.

我可以枚举我的数组并使用第二个枚举查看每个对象来查找具有不同ID但具有相同纬度和经度的对象,但是如果我尝试删除该对象,我将在枚举期间静音该数组.

有没有办法在枚举时从数组中删除对象,所以我只在数组更新时枚举当前的对象集?

希望这个问题有道理.

谢谢,豪伊

Pet*_*sey 5

在枚举时计算索引变量.当您遇到要删除的字典时,请将其索引添加到可变索引集中.然后,当您完成枚举时,向数组发送一条removeObjectsAtIndexes:消息,传递索引集.

另一种方法是构建第二个数组,然后向第一个数组发送setArray:消息,传递第二个数组 - 或释放第一个数组,保留第二个数组,并将第二个数组设置为新的第一个数组.

在不相关的注释中,您可以考虑用模型对象替换字典.它倾向于使代码更清晰.