Ios 如何覆盖NSManagedObject的哈希和isEqual?
我们有许多不同类型的NSManagedObject。 其中一些具有其他NSManagedObject的NSSet成员。 问题是我确实需要覆盖集合中对象的hash和isEquals方法,但它们是nsManagedObject。 我在获取集合中多个相同对象时遇到问题。 据我所知,由于哈希默认为对象地址,所以所有对象都是不同的。所以我需要覆盖散列和等号,但找不到任何方法Ios 如何覆盖NSManagedObject的哈希和isEqual?,ios,hash,nsmanagedobject,nsset,Ios,Hash,Nsmanagedobject,Nsset,我们有许多不同类型的NSManagedObject。 其中一些具有其他NSManagedObject的NSSet成员。 问题是我确实需要覆盖集合中对象的hash和isEquals方法,但它们是nsManagedObject。 我在获取集合中多个相同对象时遇到问题。 据我所知,由于哈希默认为对象地址,所以所有对象都是不同的。所以我需要覆盖散列和等号,但找不到任何方法 我们拥有的是系统中的一堆东西,更多的东西是通过XML输入的——有时是现有对象的重复。当它们相同时,我不希望将DUP添加到集合中。正如
我们拥有的是系统中的一堆东西,更多的东西是通过XML输入的——有时是现有对象的重复。当它们相同时,我不希望将DUP添加到集合中。正如Wain上面提到的,声明您不能覆盖
散列
或相等:
。这意味着股票NSSet
不能满足您的需要
您的一些选择包括:
- 枚举
内容以识别和删除重复项NSSet
- 为
编写一个工厂方法,当给定相同的输入时,该方法将返回相同的对象NSManagedObjects
- 修复XML,使其不包含重复的对象
- 在来自XML的对象变为
NSManagedObjects
- 假设复制的对象是完全重复的,则修改输入XML以包含可跟踪的唯一标识符
- 实现您自己的类似NSSet的集合类,该类执行与
和hash
isEqual: