ios - 获取与自身具有多对多链接的链接实体?

标签 ios core-data many-to-many entity-relationship

我有类似下面的情况:

问题是当我添加一个从一个对象到另一个对象的链接时,我只添加了一次。因此,如果链接了 2 个对象,则一个对象具有 directReports == 1、managers = 0,另一个对象具有 directReports == 0managers == 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/

相关文章:

ios - Storyboard View 元素变灰

sqlite - 使用 NSPersistentContainer 从 Core Data SQLite 存储回收空间?

ios - 自动生成的 NSManagedObject 中的属性

java - Hibernate 多对多删除关系

mysql - 对多个元素表示赞同/反对

python - Django:ManyToMany 能够排序并添加/删除关系?

ios - 如何将坐标保存到 Firebase Swift 2

objective-c - ios pList 安全

iphone - 当 HTTP 服务更新对象时,CoreData 无法解决错误

ios - 如何在 watchOS 2 上设置 Core Data