如何过滤此数组以消除重复的属性?

时间:2013-07-05 22:39:58

标签: ios

我有一系列联系人。这些联系人具有NSSet of Phone对象,每个电话对象都有一个phoneNumber字符串。我想显示所有这些联系人,但我不希望显示重复号码的联系人。现在的问题是一些联系人有重复的号码,但也可能有一个额外的号码。换句话说,一个用户可能有555-555-5555,另一个用户可能有555-555-5555加666-666-6666。如何将两个数字的联系人添加到新的联系人数组?有没有办法用NSPredicate或任何其他优雅方式过滤数组,还是只需要使用一堆for循环?

我知道我可以将电话号码放入NSSet,但我也希望能够显示Contact对象中的联系人姓名。

更简单地说,我希望能够过滤掉任何子集,或者只选择包含该手机的最大集合。

1 个答案:

答案 0 :(得分:0)

您应该可以执行以下操作:https://stackoverflow.com/a/7491851/1009087

迭代所有联系人的数组,将值添加到NSMutableSet。如果该值已存在于集合中,请将其从联系人数组中删除。

您必须遍历整个联系人列表,但每个步骤都是常量时间。只需将您的标识符设置为使每个联系人都唯一的名称和电话号码的属性组合。