我觉得这应该很简单,但表现得很奇怪。
我有3个实体,有这样的关系
实体A< - >>实体B< - >实体C
我有一个NSFetchedResults控制器,我正在尝试使用以下谓词过滤实体A的结果。
[NSPredicate predicateWithFormat:@"NONE entityB.entityC == %@", self.entityC];
当我尝试运行应用程序时,输出显示无结果。我可以稍微改变谓词:
[NSPredicate predicateWithFormat:@"ANY entityB.entityC == %@", self.entityC];
它只显示了我希望它过滤掉的结果。
为什么会这样?
答案 0 :(得分:3)
我想你可能需要一个SUBQUERY表达式:
@"SUBQUERY(entityB, $x, $x.entityC == %@).@count == 0"
但是,可能会这样做:
@"NOT (ANY entityB.entityC == %@)"
(注意:我没有测试第二个选项)