Swift : 核心数据加入实体

Swift : Core Data join entity

我知道 NSFetchedResultsController 不支持多实体。但我想知道解决下面问题的有效方法是什么。

假设我有两个实体:目录和 selectedProduct。我正在为用户获取所有实体目录,以便他可以 select 一些产品任务是:仅建议目录中不在 selectedproduct.

中的产品

在SQL中会像select * from catalogue where productName not in (select productName from selectedProduct)

认为以下谓词应根据您的要求过滤产品:

fetch.predicate = NSPredicate(format:"SUBQUERY(lescourses, $lc, $lc.listedescourses == %@).@count == 0",listdescourses)

我用过 SUBQUERY。理论上它可以用 NONENOT ANY 来完成,但我有时发现 CD 不能正确解析它们。请注意,根据评论,FRC 将仅观察对 TblProduits 的更改,如果您要修改现有 TblLesCourses 对象以建立与 listdescourses 的关系,则 FRC 不会(除非您重做 performFetch)认识到不应再包含相关的 TblProduits 对象。