objective-c - 访问核心数据中的多对多关系

标签 objective-c ios core-data

我在 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/

相关文章:

ios - 所有实例属性的核心数据总和

objective-c - 对成员 'delegate' 的模糊引用

ios - 如何增加表格 View 单元格中文本标签和详细文本标签之间的空间?

ios - 从本地 plist (null) 安装 iOS Apps 想安装

iOS 自动布局 : Align the edge of one button to the center of another button?

ios - 托管对象上下文不是从 App Delegate 传递的

objective-c - CoreData自定义映射模型

iphone - 是否 dequeueReusableCellWithIdentifier : call an initializer in my UITableViewCell subclass?

ios - 在 TTTAttributedLabel 中指定多个/条件链接颜色

ios - 解除模态呈现的 View Controller 时框架不正确