NSManagedObjects的isEqual

时间:2013-04-29 05:54:18

标签: iphone ios objective-c core-data

我正在创建一个通用类别来实现isEqual的{​​{1}}功能。由于您无法在托管对象上覆盖isEqual,因此我将其称为NSManagedObject。我使用KVC访问我想要测试的isExactlyTheSameAs上的任何属性。

我遇到的问题是,虽然它只适用于具有属性的简单类。通过关系,当我使用NSManagedObjects来获取关系时,它会抛出“不符合密钥值的密钥”错误。

任何人都知道如何让这种关系适用于人际关系?

valueForKey

1 个答案:

答案 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?