gpt4 book ai didi

objective-c - 谓词不适用于两个 @count 运算符

转载 作者:行者123 更新时间:2023-11-29 04:59:51 27 4
gpt4 key购买 nike

对于具有两个一对多关系(collectionA 和 collectionB)的实体,此代码将谓词分配给 NSFetchRequest:

[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(collectionA.@count > 0 ) OR (collectionB.@count > 0)" ]];

但是该谓词不起作用,所有对象都被选中。如果我将该行更改为另一行:

[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"collectionA.@count > 0" ]];

然后它按预期工作,并返回 collectionA 中至少包含一项的所有对象。集合B 也是如此。但是当我尝试 OR 运算来获取两者的组合时,它不会过滤任何对象,就好像谓词被忽略一样。

我确定我做错了什么,也许两个 @count 运算符不能在同一个谓词中使用。我必须如何编写谓词才能获取集合 A 或集合 B 中任何项目的对象的结果?

提前致谢。

最佳答案

我不知道为什么两个 @count 集合运算符不能在同一个谓词中运行。有时,您会遇到 predicateWithFormat 的奇怪问题。我建议创建两个单独的谓词,然后将它们与:

-[NSCompoundPredicate orPredicateWithSubpredicates];

…直接创建复合谓词而不是依赖解析器通常可以解决此类问题。

但是,您确实希望确保确实拥有两个关系都为空的对象,因为您正在构建的谓词将返回在任一关系中具有一个或多个对象的所有托管对象。

关于objective-c - 谓词不适用于两个 @count 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7221078/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com