我有类似下面的情况:
问题是当我添加一个从一个对象到另一个对象的链接时,我只添加了一次。因此,如果链接了 2 个对象,则一个对象具有 directReports == 1
、managers = 0,另一个对象具有 directReports == 0
、managers == 1
。
如果我想获得所有链接的对象,那么我不能将谓词写成 (directReports.count > 0) OR (managers.count > 0)
(这是被禁止的)。所以我应该把它写成 (ANY directReports != nil) OR (ANY managers != nil)
。
那么有没有更好的方法来解决这个问题。例如,我看到可以在实体之上创建类别,但我可以在谓词中使用它吗?
最佳答案
两个谓词
(directReports.@count > 0) OR (managers.@count > 0)
(注意是"@count",不是"count")和
(ANY directReports != nil) OR (ANY managers != nil)
应该努力获取所有链接到任何其他员工的员工 (通过两种关系之一)。
类别方法没有帮助,因为(基于 SQLite 的)Core Data 的谓词 fetch 请求只能使用持久属性,不能使用 transient 属性或 Objective-C 方法。
关于ios - 获取与自身具有多对多链接的链接实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21181046/