关联实体的任何行的核心数据谓词

Core Data predicate for any row of the associated entity

在下文中,我将描述我的 Core Data 模式的简化,我很确定它等同于我的真实情况。

我有两个实体 FirstSecond 通过多对多关系链接 r

Second有两个布尔属性,我们称它为takeyou_should_not_take。 我想查询 select 一行 First iff 它退出 Second 的关联行与 take = true.

我试过这个谓词:

NSPredicate(format: "ANY (%K == YES && %K == NO)", "r.take","r.you_should_not_take")

但是核心数据给我以下错误:"[General] Unable to parse the format string".

也许我必须使用这个:

NSPredicate(format: "((ANY %K == YES) && (ANY %K == NO))", "r.take","r.you_should_not_take")

但我担心最后一个查询将 select 行 First 当且仅当它存在 xSecondx.take == YES && 它存在一行 y 如果 Second 对于 y.you_should_not_take == NO,不保证 x == y.

SQL 查询非常简单,但我对 Core Data 不是很熟悉,所以虽然我会尝试更多查询(并且我会测试第二个查询是否执行我的操作认为确实如此)我也在这里问过,希望答案会像 SQL.

中那样简单

至select所有第一个个与(至少一个)第二个个对象相关的对象take==trueyou_should_not_take==false 你有 使用子查询。像(未经测试):

SUBQUERY(r, $x, $x.take == YES AND $x.you_should_not_take == NO).@count > 0