我有类似以下情况:
问题是当我从一个对象添加链接到另一个对象然后我添加了一次。因此,如果链接了2个对象,则其中一个具有directReports == 1
,经理= 0,另一个directReports == 0
,managers == 1
。
如果我想获取所有链接对象,那么我就不能将谓词编写为(directReports.count > 0) OR (managers.count > 0)
(它被禁止)。所以我应该把它写成(ANY directReports != nil) OR (ANY managers != nil)
。
那么有更好的方法来解决这个问题。例如,我看到可以在实体上创建一个类别,但我可以在谓词中使用它吗?
答案 0 :(得分:2)
两个谓词
(directReports.@count > 0) OR (managers.@count > 0)
(请注意“@ count”,而不是“count”)和
(ANY directReports != nil) OR (ANY managers != nil)
应该可以获取与任何其他员工相关联的所有员工 (通过两种关系中的一种)。
类别方法没有帮助,因为(基于SQLite的)核心数据的谓词 获取请求只能使用持久属性,但不能使用瞬态属性 Objective-C方法。