gpt4 book ai didi

ios - 核心数据谓词 : unimplemented SQL generation for predicate

转载 作者:技术小花猫 更新时间:2023-10-29 10:18:48 27 4
gpt4 key购买 nike

基本上我的数据模型中有 3 个实体:Brand、Model 和 Trim。

  • 品牌与称为“模型”的模型具有一对多关系。 (一个品牌有多个型号,但一个型号只有一个品牌)
  • 模型与 Trim 之间存在多对多关系,称为“trims”。 (一个模型可以有多个trims,一个trim可以有多个模型)

有一组装饰物对象,我想让所有品牌的模型“包含”至少一个包含在该数组中的装饰物。

所以这是我对获取请求的谓词:

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Brand"];    
[NSPredicate predicateWithFormat:@"ANY models.trims IN %@", arrayOfTrims];

这是我得到的错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (ANY models.trims IN {<Trim: 0x8e60340> (entity: Trim; id: 0x8e62f10 <x-coredata://BCD28560-AED5-4409-9A35-1925001773E6/Trim/p8>

我是 Core Data 的新手,我不知道自己做错了什么。

希望有人能帮忙,

非常感谢。

最佳答案

Core Data 谓词中的“ANY”仅适用于 对多关系。由于您的查询涉及两个 对多关系,因此您必须使用 SUBQUERY:

[NSPredicate predicateWithFormat:@"SUBQUERY(models, $m, ANY $m.trims IN %@).@count > 0",
arrayOfTrims];

关于ios - 核心数据谓词 : unimplemented SQL generation for predicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22101233/

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