我有一个应用程序,它有一个核心数据数据库来维护它的信息。
显然,我有一个managedObjectModel
和一个persistentStoreCoordinator
来管理应用程序的数据。
我想将其中的一小部分导出为单独的文件/存储(通过另一个协调器?),以便可以将其发送/通过电子邮件发送给具有相同应用程序的其他人,并打开并合并到其内容中。
显然,合并部分有可能性,但我已做好准备。其他人有关于技巧,陷阱或最佳实践的指针,建议,经验吗?
答案 0 :(得分:1)
不要尝试在数据库级别执行此操作。 Core Data的数据库只是一个实现问题......它可能会在未来发生变化,您不应该直接依赖数据库。相反,获取要共享的对象(对象,而不是数据库条目),将它们序列化为某种传输格式(如JSON或NSCoder),并在接收端进行解码。
答案 1 :(得分:0)
您可以在一个上下文中将任意数量或持久存储和模型一起网格化。唯一的主要限制是(1)您不能在不同的模型中拥有相同名称的实体,以及(2)您不能在商店之间形成关系。
在您的情况下,您很可能会使用一个模型和两个商店。您可以使用配置属性将不同的实体分配给不同的商店(请参阅文档。)我建议创建一个“主”配置,它将保存实际的应用程序数据,然后创建一个“导出”配置来处理您的导出。导出配置中的实体应该是主要实体的子实体。这样他们将继承主实体的所有属性和关系。将主配置分配给主存储,将导出配置分配给导出文件。
如果要导出数据,可以在导出配置中将主要实体克隆到其子实体,然后将它们保存到导出持久性存储中。要导入数据,只需反转该过程即可。