gpt4 book ai didi

iphone - countForFetchRequest 和executeFetchRequest 返回不同数量的结果

转载 作者:行者123 更新时间:2023-12-03 20:09:56 25 4
gpt4 key购买 nike

我发现 NSFetchRequest 返回不同的计数和执行结果。

我有一个产品实体和一个尺寸实体。一种产品有多种尺寸。

我有两个产品:productA 和 ProductB。产品A仅提供尺寸1,产品B提供尺寸1和尺寸2。

给定 NSPredicate

'任意尺寸。#size IN {"size1", "size2"}'

我发现它为 countForfetchRequest 返回 3,但当我执行提取请求时,它返回一个包含 2 个项目的数组。

计数是不正确的值。 ProductB 具有两种大小,并且似乎在 countForfetchRequest 中计数了两次,但显然仅由 executeFetchRequest 调用返回一次。

我尝试设置 setReturnsDistinctResults:YES 但没有效果。

最佳答案

我稍微修改了答案中的谓词。请注意,有关您可能遇到的解析问题的相同注意事项(在我之前的评论之一中给出)仍然适用。我假设您有多个尺寸,例如 sizeA、sizeB、sizeC 等。您需要一个子查询来正确处理核心数据中的一对多关系,如以下谓词所示

编辑:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(sizes.@count == 1 || sizes.@count == 2) && (1 == SUBQUERY(sizes, $sub, $sub.#size == %@ || $sub.#size == %@).@count  || 2 == SUBQUERY(sizes, $sub, $sub.#size == %@ || $sub.#size == %@).@count)", yourSizeAvariable, yourSizeBvariable];

请告诉我这是否适合您。

关于iphone - countForFetchRequest 和executeFetchRequest 返回不同数量的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4026572/

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