获取CoreData一对多关系的索引路径?

Posted

技术标签:

【中文标题】获取CoreData一对多关系的索引路径?【英文标题】:Get index path of CoreData one-to-many relationship? 【发布时间】:2014-03-15 02:39:21 【问题描述】:

我希望有类似[_contact.phones objectAtIndexPath:indexPath];可供我使用。其中 _contact 是我的核心数据对象,而电话是来自联系人的一对多关系。然而,这对我来说是不可用的。我试图在我的cellForRowAtIndexPath 实现中执行此操作(其中电话将是它自己的部分)但我无法弄清楚如何在加载时不将电话添加到外部数组然后使用它来代替。

有人可以给我一些关于如何解决这个问题的建议吗?

【问题讨论】:

【参考方案1】:

核心数据对多关系使用NSSet。如果您在 XCode 中选中“ordered”,它将成为具有 objectAtIndex 方法的 NSOrderedSet

您不想使用无序集,因为即使您使用 NSSet 的 allObjects 方法获得了一个对象数组,每次调用它的顺序也不一定相同。

例如看这个答案: Ordered Sets and Core Data (NSOrderedSet)

如果数据结构是树而不是数组,objectAtIndexPath 将有意义。

【讨论】:

我已经放弃了,开始用数组来做。谢天谢地,我没有深入了解它。来自西雅图同胞的感谢。

以上是关于获取CoreData一对多关系的索引路径?的主要内容,如果未能解决你的问题,请参考以下文章

CoreData 获取所有一对多关系

在 coreData 中获取一对多关系并放入 tableview

获取对象时无法访问一对多CoreData关系

以一对多关系从 coredata 中获取所有对象

CoreData 在一对多关系中编辑一个属性

IOS:通过一对多关系获取核心数据