gpt4 book ai didi

objective-c - 如何使用 NSPredicate 中的 "ALL"聚合操作来过滤基于 CoreData 的集合

转载 作者:IT王子 更新时间:2023-10-29 08:17:51 33 4
gpt4 key购买 nike

基于下面的数据模型

dataModel

根据用户输入,我创建了一个名为 selectedTags 的实体标签的 managedObjects NSSet。


我的问题:

[NSPredicate predicateWithFormat:@"ANY entryTags IN %@", selectedTags];

...这将返回 任何 条目,其中至少有一个 entryTag 在 selectedTags 集中。

我想要的是:

[NSPredicate predicateWithFormat:@"ALL entryTags IN %@", selectedTags];

...注意唯一的变化是“任何”到“全部”。这说明了我想要的,但不起作用。

制定我期望的结果:

我正在寻找一种解决方案,它将只返回 entryTags 都在 selectedTags 列表中的条目(但同时,如果可能,不一定相反)。

进一步说明:

(标签)妈妈
(标签)爸爸
(标签)礼物

(entry)she is a she.....(tag)mom
(entry)he is a he.......(tag)爸爸
(条目)给妈妈的礼物...(标签:)妈妈, 礼物
(entry)给爸爸的礼物.....(tags:)爸爸, 礼物

如果 selectedTags 包含“mom”和“gifts”,那么条目“gifts for dad”将会出现,因为它有标签“gifts”。我宁愿让它不显示 :)

最佳答案

到目前为止,这是明确的答案:

[NSPredicate predicateWithFormat:@"SUBQUERY(entryTags, $tag, $tag IN %@).@count = %d", selectedTags, [selectedTags count]];

B-E-A-U-T-I-F-U-L。

感谢 Dave DeLong。

关于objective-c - 如何使用 NSPredicate 中的 "ALL"聚合操作来过滤基于 CoreData 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5302611/

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