Core data NSPredicate为两个级别的项目提供深度对多关系,无直接关系

Core data NSPredicate为两个级别的项目提供深度对多关系,无直接关系,core-data,subquery,nspredicate,one-to-many,identifier,Core Data,Subquery,Nspredicate,One To Many,Identifier,我正在尝试为以下(简化)模型构建一个NSFetchRequest谓词: 一个类别和许多品牌之间存在简单到多的关系 每个品牌都有一个modelNumbersData属性,该属性是二进制数据,是NSStringmodelNumbers数组的序列化,在品牌对象的瞬态属性中公开 Brands和Models之间没有直接关系。这种关系是型号的型号可能在品牌的型号瞬态属性中 我想构建一个NSPredicate查询,以获取特定类别下的模型对象 为品牌获取模型很容易,我可以执行中的“modelNumber$

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

  • 一个
    类别
    和许多
    品牌
    之间存在简单到多的关系

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

  • Brand
    s和
    Model
    s之间没有直接关系。这种关系是
    型号
    型号
    可能在
    品牌
    型号
    瞬态属性中

我想构建一个
NSPredicate
查询,以获取特定
类别下的
模型
对象

品牌
获取
模型
很容易,我可以执行
中的“modelNumber$FETCH\u SOURCE.modelNumbers”
。现在,我如何扩展此查询以从类别开始?似乎我需要一个
子查询

此外,我正在执行一个
NSFetchRequest
,因此除非我弄错了,否则我需要从
“SELF.modelNumber IN(…)”
开始,以便从所有
模型中进行选择


提前谢谢

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

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

我认为我最大的问题是忽略了
@count
组件。我仍然不太明白这一点,但似乎对所有
子查询
语句都是必要的。

作为更新,如果我首先获取所有
模型
s,我可以使用
子查询(%@.brands,$brand,$brand.modelNumbers包含SELF.modelNumber).@count>0
但我如何将其合并到单个步骤/查询中?看来应该是另一种方式。。。