将两组Core Data对象合并为一个数据存储区

时间:2013-12-29 06:45:56

标签: core-data

我的应用数据模型旨在接收实体内实体内的大量实体,如下图所示。我做了大约两个小时的研究,然后我在这个论坛上问了一下,所以我努力找到自己,我不只是在浪费时间。

无论如何,我打算做的是有一个由用户填充的本地Recorder对象,但是我的应用程序还需要能够从蓝牙传输接收另一个Recorder对象并合并所有传入的Recorder与这些实体相关的实体和实体等。

如何将传入的Recorder内容移动到本地副本中,并在出现时找到重复的Match对象?

除了使用for循环迭代所有内容之外,还有更简单的方法吗?

Recorder has several Regionals, which has several Teams, which has several Matches

1 个答案:

答案 0 :(得分:1)

你所要求的并不完全清楚,但我会采取刺激措施。

您的图表显示没有子实体。它确实显示了通过关系连接的不同实体。从我对你所问的内容的阅读中,你并没有合并子实体。您只是组合来自两个不同来源的NSManagedObject个实例。

一旦你收紧术语,这是一项简单的工作。为每个实体实现find-or-create类方法。这意味着您必须决定区域,团队或匹配的独特之处。每个find-or-create方法将始终返回其实体的实例,方法是检索现有实例,或者插入,填充和返回新实体。定义获取请求将使这项任务变得不那么繁琐。

当您收到要合并的新批次结果时,请从顶部对象开始,遍历关系,然后查找或创建传入集中的每个对象。

在我看来,你的记录器实体不会做太多事情,并且使事情复杂化。您可能希望定义该类,但不要存储在Core Data模型中。区域,团队和匹配的模型很好地匹配现实世界,并使得提取/合并更加明显。