对于核心数据关系实体的谓词,其中ALL Foo == NO

时间:2013-04-19 13:43:52

标签: core-data nspredicate

我想知道如何让所有关系对象与BOOL值匹配。

使用ANY创建谓词可以正常工作:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY journeyPart.lastPart == NO"];

但如果我试试这件事,我就会崩溃:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ALL journeyPart.lastPart == NO"];

由于

卡尔。

1 个答案:

答案 0 :(得分:1)

我可以重现这个问题,对我来说它看起来像是一个核心数据错误。作为解决方法,您可以替换

[NSPredicate predicateWithFormat:@"ALL journeyPart.lastPart == NO"]

等效

[NSPredicate predicateWithFormat:@"SUBQUERY(journeyPart, $x, $x.lastPart != NO).@count = 0"]

在我的测试应用中正常工作。