2

我觉得这应该很简单,但它的行为很奇怪。

我有 3 个实体,有这样的关系

实体 A <-->> 实体 B <<--> 实体 C

我有一个 NSFetchedResults 控制器,我正在尝试使用以下谓词过滤实体 A 的结果。

[NSPredicate predicateWithFormat:@"NONE entityB.entityC == %@", self.entityC];

当我尝试运行该应用程序时,输出未显示任何结果。我可以将谓词稍微更改为:

[NSPredicate predicateWithFormat:@"ANY entityB.entityC == %@", self.entityC];

它只向我显示我希望它过滤掉的结果。

为什么会这样?

4

1 回答 1

3

我想你可能想要一个SUBQUERY表达式:

@"SUBQUERY(entityB, $x, $x.entityC == %@).@count == 0"

但是,它可能会起作用:

@"NOT (ANY entityB.entityC == %@)"

(注意:我没有测试过第二个选项)

于 2010-04-05T20:27:48.680 回答