我想出了一个使用子查询的解决方案,但我不明白为什么我首先尝试做的事情没有奏效。
这是我的数据模型。我正在获取建议。
我可以执行以下操作作为谓词:
[NSPredicate predicateWithFormat:@"ANY conditions.terrain == %@", aTerrainObject];
工作正常,并返回至少一个条件具有该地形类型的任何建议。
但是,当我尝试这样做时,它失败了:
[NSPredicate predicateWithFormat:@"ANY conditions.terrain == nil"];
我想要做的是返回任何一条建议,其中至少有一个条件没有设置地形类型。
但是,以下方法确实有效:
[NSPredicate predicateWithFormat:@"SUBQUERY(conditions, $x, $x.terrain == nil).@count > 0"];
谁能解释为什么在搜索 nil 时我不能使用ANY
语法?