NSPredicate在NSFetchedResultsController中表现得很奇怪

时间:2010-04-05 20:08:09

标签: iphone core-data nspredicate nsfetchedresultscontroller

我觉得这应该很简单,但表现得很奇怪。

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

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

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

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

当我尝试运行应用程序时,输出显示无结果。我可以稍微改变谓词:

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

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

为什么会这样?

1 个答案:

答案 0 :(得分:3)

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

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

但是,可能会这样做:

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

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