核心数据实体中的对象数组?

Posted

技术标签:

【中文标题】核心数据实体中的对象数组?【英文标题】:Array of Objects in Core Data Entity? 【发布时间】:2010-05-01 09:29:37 【问题描述】:

我有两个实体,一个命名为锻炼,另一个命名为锻炼。我想在每个锻炼对象中存储几个不同的练习。

这里的正确逻辑是什么?在每次锻炼中创建一系列练习?

【问题讨论】:

【参考方案1】:

您不能在 Core Data 中创建数组。但是,您可以使用对多关系来模拟它们。将关系添加到您的 Workout 实体,例如 exercises。然后将其 Destination 设置为 Exercise 实体并选中“To-Many Relationship”复选框。请注意,练习将存储为NSSet,而不是NSArray,因此不会被订购。如果您希望它们按特定顺序排列,我建议使用 BWOrderedManagedObject 子类。

【讨论】:

ios 5开始,可以对关系进行排序。只需在编辑器中勾选关系上的“有序”复选框即可。 感谢@SteveHarrison 10 年前的精彩解释!【参考方案2】:

正如@SteveHarrison 的(仍然完美的)十年前的回答所解释的那样,您只需单击“关系”,但请选择“对多”

所以,某些实体有许多“回复”项。 (我将“CD”放在所有实体名称的前面,因此是“CDReply”。)

下次重建后,您将免费获得

因此,假设您有一个CDPost,即p

代码就是这么简单

for oneJsonReply in yourJson 
    r = CDReply.your code to convert ( oneJsonReply ) to a CDReply
    p.addToReplys( r )

【讨论】:

以上是关于核心数据实体中的对象数组?的主要内容,如果未能解决你的问题,请参考以下文章

核心数据 - 使用数组的确切元素获取对象过滤数据

子查询谓词核心数据

iOS:核心数据获取

将子实体加载到核心数据中的托管对象

使用 NSPredicate 获取核心数据对象数组?

iOS RestKit 实体管理器映射对象数组