0

我有以下问题,我不知道如何解决它。我有一个 NSSet,其中包含 Person 对象(具有 2 个键的 NSDictionary:姓名、年龄)。有时我会得到一个 Person 对象的 NSArray,我想将它们添加到我的 NSSet 中,但我想过滤掉重复项。我想我可以使用 NSPredicates 但我正在阅读文档,但我不明白我应该如何格式化我的 NSPredicate 以根据我在 NSSet 中已有的内容过滤掉我的数组内容。

所以我有一个包含 5 个自定义对象的 NSSet,我得到一个包含 6 个对象的 NSArray,但其中 3 个已经存在于 NSSet 中,我想将它们过滤掉。我了解我应该如何处理字符串、整数等基本对象,但我不知道如何扩展它以处理自定义更复杂的对象。

我希望我对我的问题足够清楚。非常感谢任何起点、示例或建议。

谢谢!

4

1 回答 1

0

如果你已经有一个可变集合,你真的不需要做任何特别的事情。如果您在将来某个时间点返回相同的 Person 实例, addObject: 将简单地忽略它。如果您对“平等”有不同的含义,而不仅仅是两个对象是否是同一个实例,那么您必须自己处理这个问题,但是如果您的新对象为 isEqual: 返回 YES,那么 addObject: 将已经忽略它以及当您把它放在集合中。

于 2010-04-05T23:04:37.907 回答