【问题标题】:NSPredicate for items in two-levels deep to-many relationship, w/o direct relationshipNSPredicate 用于两级深对多关系中的项目,无直接关系
【发布时间】:2014-04-16 17:48:26
【问题描述】:

我正在尝试为以下(简化)模型构建单个 NSFetchRequest 谓词:

  • Category 和多个 Brands 之间存在简单的多对多关系。

  • 每个Brand 都有一个modelNumbersData 属性,它是二进制数据,NSString modelNumbers 数组的序列化,在Brand 对象的瞬态属性中公开。

  • Brands 和Models 之间没有直接关系。关系是ModelmodelNumber 可能在BrandmodelNumbers 瞬态属性中。

我想构建一个NSPredicate 查询来获取特定Category 下的所有Model 对象

Brand 获取Models 很容易,我可以做到"modelNumber IN $FETCH_SOURCE.modelNumbers"。我现在如何扩展此查询以源自该类别?看来我需要SUBQUERY

此外,我正在做一个NSFetchRequest,所以除非我弄错了,否则我需要从"SELF.modelNumber IN (...)" 开始,以便我们从所有Models 中进行选择。

提前致谢!

【问题讨论】:

  • 作为更新,如果我首先获取所有Models,我可以过滤我想要的内容:SUBQUERY(%@.brands, $brand, $brand.modelNumbers CONTAINS SELF.modelNumber).@count > 0 但是我如何将其组合成一个步骤/查询?似乎它需要反过来......

标签: core-data subquery nspredicate one-to-many identifier


【解决方案1】:

好的,我先到了。供参考,以下作品:

SUBQUERY(%@.brands, $brand, $brand.modelNumbers CONTAINS $modelNumber).@count > 0

我认为我主要遇到的问题是忽略了.@count 组件。仍然不完全理解这一点,但似乎对所有SUBQUERY 语句都是必要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多