我目前在我的核心数据模型中有这些实体:Post,Venue,Scene和Feature。场景具有名为' sceneId'的属性,并且要素具有属性名称' featureId'。
邮政有一个'对一个'与场地的关系,场地有一个“对多”的场所。与场景和特征的关系。
我想要完成的是编写一个NSPredicate来过滤一系列' sceneId'属性和/或过滤器的数组'属性。
我试过了:
var postPredicate = NSPredicate(format: "venue.scenes.sceneId IN %@", sceneIds)
但是我收到了这个错误:
由于未捕获的异常而终止应用 ' NSInvalidArgumentException',原因:'未实现的SQL生成 对于谓词:( venue.scenes.sceneId IN {1})'
修改
我尝试使用此谓词查询Venue实体:
var predicate = NSPredicate(format: "(0 != SUBQUERY(scenes, $scene, $scene.sceneId IN %@).@count)", [2,3])
但是如果Venues scenes.sceneId包含2或3,我会得到值。我想只在与场地关联的scenes.sceneId包含2和3时才返回值。
更新
我终于在这篇文章中找到了答案: answer