Core Data实体中的对象数组?

8

我有两个实体,一个名为exercise,另一个名为workout。我想在每个workout对象中存储几种不同的exercise。

这里的正确逻辑是什么?在每个workout中创建一个exercise数组吗?

2个回答

24

在Core Data中无法创建数组,但是您可以使用 "To-Many Relationships" 来模拟它们。向您的 Workout 实体添加一个关系,称为 exercises。然后将其目标设置为 Exercise 实体,并选中 "To-Many Relationship" 复选框。请注意,这些练习将存储为 NSSet,而不是 NSArray,因此它们将不会被排序。如果您想以特定顺序排列它们,建议使用BWOrderedManagedObject子类。


14
自 iOS 5 开始,可以对关系进行排序。只需在编辑器中勾选关系上的“有序”复选框即可。 - Bjinse
1
感谢您这篇出色的、十年前的解释,@SteveHarrison! - Fattie

7

正如 @SteveHarrison 十年前的完美回答所解释的那样,您只需点击 "relationship",但要选择 "to-many"

enter image description here

因此,某个实体有许多“Reply”项。(我在所有实体名称前面加了“CD”,因此是“CDReply”。)

下一次重建后,你将免费获得以下内容:

enter image description here

假设您有一个CDPost,它是p其中之一

代码非常简单

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接