我正在创建一个通用类别来实现isEqual
的{{1}}功能。由于您无法在托管对象上覆盖isEqual,因此我将其称为NSManagedObject
。我使用KVC访问我想要测试的isExactlyTheSameAs
上的任何属性。
我遇到的问题是,虽然它只适用于具有属性的简单类。通过关系,当我使用NSManagedObjects
来获取关系时,它会抛出“不符合密钥值的密钥”错误。
任何人都知道如何让这种关系适用于人际关系?
valueForKey
答案 0 :(得分:0)
有一个similar question here on SO,用于处理托管对象的属性与属性比较。
这种方法使用NSManagedObject的entityDescription
而不是属性自省
您可以使用描述的relationShipsByName
属性为您的关系创建类似的提取请求。
如果您只想测试某个对象是否与持久性存储中已存在的对象相同,则可以使用此处所述的objectID
属性:
Should I use == or [NSManagedObject isEqual:] to compare managed objects in the same context?