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 时如何比较数组中的值以删除重复项的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSPredicate 来判断 NSSet 是不是包含来自另一个 NSSet 的对象 [重复]
将 NSNumber 的 NSSet 更改为 int 的 NSSet