我是 iOS 编程的新手,我有一个项目正在进行中,伴随着它我不断学习 iOS 的新功能,所以它来到了 Core Data。我已经阅读了它的基本教程和解释。但遗憾的是,他们没有很好地涵盖创建复杂的数据库。我的目标是创建一个从服务器下载大约 20mb XML 文件的数据文件的应用程序。并将其中的数据加载到 App 的 Core Data 数据库中,供用户交互。
我将尝试解释我尝试构建的架构
每个文件都作为类型 A 的实体加载到数据库中。每个实体 A 有几个属性和一个实体 B 数组。(一对多关系)每个实体 B 有几个属性和一个实体 C 数组。(一对多关系)
我的 XML 结构就像
<a>
<set of b's>
<b1>
<set of c's>
<c1>
<c2>
...
<cn>
</set of c's>
</b1>
<b2>
....
<bn>
</set of b's>
</a>
由于实体 A 仅代表导入的不同文件,因此它们是在我在服务器上创建可用数据文件列表时创建的。然后我计划下载文件,解析它并将它的数据加载到数据库中。当我运行我的解析器时,首先我得到创建实体 B 所需的所有数据,然后我可以创建一个字典数组来保存实体 C 的数据,或者我可以将实体插入 B 的集合中。
我遇到问题的部分是如何将实体插入 MOC 以及如何保存它。我的意思是我应该对所有类型的实体使用相同的 MOC 并保存对它的更改吗?或者我应该例如将“B”插入A的MOC,然后将“C”插入B的MOC,然后首先保存B的MOC中的更改,然后保存在A的MOC中?
我的解析器以块的形式读取数据,所以我需要一些事件来告诉它,我已经添加了当前块中的所有数据并且它被保存并且它可以开始读取下一个块。
我将不胜感激那里的任何帮助。