NSSet 在使用 SetWithArray 时如何比较数组中的值以删除重复项

Posted

技术标签:

【中文标题】NSSet 在使用 SetWithArray 时如何比较数组中的值以删除重复项【英文标题】:How NSSet compares values in array to remove duplicates when using SetWithArray 【发布时间】:2012-03-23 13:14:04 【问题描述】:

我有 NSArray,我想从中删除重复项。我知道使用这种方法 [NSSet setWithArray:[arrAllValues valueForKey:@"value"]] 我也知道它调用 valueForKey 参数中指定的方法。但我不知道 NSSet 调用什么方法来比较数组中的对象。 我的问题是我想比较名为“value”的属性,但我想返回包含属性而不是属性的对象数组。我可以这样做吗?

谢谢!!!

【问题讨论】:

请参考这个问题:***.com/questions/1025674/… 【参考方案1】:

它使用NSObject protocol reference 方法比较它们:

- (BOOL)isEqual:(id)anObject

因此,您可以在类中重写此方法以实现所需的行为,就像在 Java 中所做的一样,您也应该重写哈希。

【讨论】:

感谢奥斯卡的回答!!!有效!!我只是不知道要覆盖哪些方法!!

以上是关于NSSet 在使用 SetWithArray 时如何比较数组中的值以删除重复项的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSSet 关系填充 cellForRow

使用 NSPredicate 来判断 NSSet 是不是包含来自另一个 NSSet 的对象 [重复]

将 NSNumber 的 NSSet 更改为 int 的 NSSet

使用 ActiveMerchant 时如何处理超时?

在 Sequelize 中使用 .create(...) 方法时如何处理错误

使用 QNetworkAccessManager 时如何处理代理