isEqual of NSManagedObject - 它如何确定相等性?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了isEqual of NSManagedObject - 它如何确定相等性?相关的知识,希望对你有一定的参考价值。
我正在使用NSManagedObject键处理NSMutableDictionary。我的密钥中的一些数据将被改变,但NSMutableDictionary类引用声明在使用setObject时复制了密钥!当我想使用键访问值时,它会将我给它的键与键列表中的键进行比较。
很抱歉,如果这是一个愚蠢的问题,但我在NSManagedObject类引用中找不到isEqual的作用。它是否比较每个值,比较一些唯一标识符,比较内存地址或其他什么?
我在这里看到了一些不确定的答案:Should I use == or [NSManagedObject isEqual:] to compare managed objects in the same context?,其中一个说它比较哈希方法。散列码不一定是对象的唯一标识符,对吧?
我看到其他人在评论中已经回答了 - 但对于它的“官方性” - 这是正确的详细答案。
由于NSManagedObjcet
类不符合<NSCoding>
协议 - 它不能作为NSDictionary
或NSMutableDictionary
的关键。
相反 - 您希望将managedObject的objectID
属性用作字典中的键。 objectID
是一个NSString,当然符合NSCoding
。
使用objectID
还有另一个好处。如果你有多个NSManagedObjectContext
,那么同一个实体将为每个NSManagedOBject
提供不同的NSManagedObjectContext
实例。知道他们是唯一的唯一方法是通过他们的objectID
财产 - 这将是isEqual
。
以上是关于isEqual of NSManagedObject - 它如何确定相等性?的主要内容,如果未能解决你的问题,请参考以下文章