根据对象的属性从NSMutableArray中移除重复项
问题描述:
我有这个NSMutableArray,它包含一个Message对象。消息有几个属性,其中之一是TheID。根据对象的属性从NSMutableArray中移除重复项
因此,考虑到下列对象在我的数组:
Message1.TheID = 1
Message1.title = @"whatever"
Message2.TheID = 2
Message2.title = @"doesn't matter"
Message3.TheID = 1
Message3.title = @"I don't care"
我想摆脱重复TheIDs的。
什么是筛选我的阵列以这样的方式最好的方式,我结束了
我见过很多类似的问题消息1包含的消息2和(或消息2和消息3)一个数组,但没有的解决方案似乎适用于我的情况。
感谢
答
,你通过你的消息数组迭代你可以使用一个NSSet
来跟踪使用的ID的。只有将消息添加到其ID的新数组不在集合中。
NSMutableSet *ids = [NSMutableSet set];
NSMutableArray *newMessages = [NSMutableArray array];
for (Message *message in messagesArray) {
if (![ids containsObject:message.theID]) {
[ids addObject:message.TheID];
[newMessages addObject:message];
}
}
谢谢。唯一的问题是TheID是一个int(而不是一个对象)。尽管我会使用另一个独特的属性。 – Sjakelien
您可以使用该ID。在将它与NSSet一起使用之前,请将其包装在NSNumber中。 – rmaddy