我在 iPhone 应用程序中使用 Core Data。
我有 2 个实体:列表和项目,通过多对多关系链接。 List中的关系名称是items,Item中的关系名称是lists。
我想获取用户选择的列表中的所有项目。
现在我正在尝试构建一个如下所示的谓词:
NSPredicate *basePredicate = [NSPredicate predicateWithFormat:@"lists IN %@", listsIds];
listsIds 是一个 ObjectID 数组
但是当我运行该程序时,我收到此错误:
未实现谓词的 SQL 生成:(列表 IN {0x594ac10 })'
知道如何做吗?
谢谢!
最佳答案
你还需要谓词吗?
如果用户选择List
对象,那么要查找相关的Item
对象,您只需遍历List.items
关系即可。
假设您有一个由用户选择的 List
对象数组。要获取相关 Item
对象的数组,只需使用:
NSArray *itemArray=[listArray valueForKey:@"items"];
一旦在关系的一侧拥有一个对象,您就可以找到所有其他对象,而无需获取。
关于objective-c - 访问核心数据中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285340/