问题描述
||
我已经设置了一个应用程序,该应用程序已预填充了将数据库复制到项目存储中的数据。使用\'CoreDataBooks示例\'方法:
有什么预填充核心数据的方法吗?
对于应用程序升级,我想向数据库中添加更多数据,但是由于新用户数据存储在数据库中,我不想更改现有数据库吗?
最好的方法是什么?
我想创建一个新版本的托管对象模型(如果架构中的任何内容均未更改,我不确定是否可以添加新的MOM版本),对于新版本,请读取当前运行的MOM版本,然后进行迁移将MOM升级到最新版本,并在代码中手动添加自当前运行的MOM版本以来尚未添加的新记录。
手动在代码中添加新记录似乎有些乏味。这听起来是否正确,还是有一种更优雅的方式来添加新数据?
谢谢!
解决方法
如果您更改托管对象模型本身,例如添加新实体或更改现有属性,则需要使用迁移来更新现有持久存储。有关迁移的详细信息,请参见“核心数据”文档。
如果您只想添加新数据,则别无选择,只能“手动”进行。
请记住,Core Data是一个对象图管理系统,而不是数据库。对象“图”是相互关联的对象的“网络”,因此向图中添加数据的唯一方法是创建新对象并设置它们之间的关系。它并非效率低下,而是它的工作方式。