Ios 导出CoreData数据库的一部分

Ios 导出CoreData数据库的一部分,ios,core-data,Ios,Core Data,我有一个应用程序,它有一个维护其信息的核心数据数据库。 显然,我有一个managedObjectModel和一个persistentStoreCoordinator来管理应用程序的数据 我想将它的一小部分导出为一个单独的文件/存储(通过另一个协调器?),这样就可以将它发送/通过电子邮件发送给具有相同应用程序的其他人,并打开并合并到他们的内容中 很明显,合并部分有一些棘手的可能性,但我已经准备好了。其他人有关于技巧、陷阱或最佳实践的指针、建议、经验吗?不要试图在数据库级别这样做。核心数据的数据库只

我有一个应用程序,它有一个维护其信息的核心数据数据库。 显然,我有一个
managedObjectModel
和一个
persistentStoreCoordinator
来管理应用程序的数据

我想将它的一小部分导出为一个单独的文件/存储(通过另一个协调器?),这样就可以将它发送/通过电子邮件发送给具有相同应用程序的其他人,并打开并合并到他们的内容中


很明显,合并部分有一些棘手的可能性,但我已经准备好了。其他人有关于技巧、陷阱或最佳实践的指针、建议、经验吗?

不要试图在数据库级别这样做。核心数据的数据库只是一个实现问题……它可能在未来发生变化,您不应该直接依赖数据库。取而代之的是,获取您想要共享的对象(对象,而不是数据库条目),将它们序列化为某种传输格式(如JSON或NSCoder),并在接收器端对其进行解码。

不要尝试在数据库级别进行此操作。核心数据的数据库只是一个实现问题……它可能在未来发生变化,您不应该直接依赖数据库。取而代之的是,获取您想要共享的对象(对象,而不是数据库条目),将它们序列化为某种传输格式(如JSON或NSCoder),并在接收器端对其进行解码。

您可以在一个上下文中将任意数量或持久性存储和模型组合在一起。唯一的主要限制是(1)在不同的模型中不能有相同名称的实体,(2)不能在商店之间形成关系

在您的情况下,您最有可能使用一个型号和两个商店。您可以使用configuration属性(参见文档)将不同的实体分配给不同的商店。我建议您创建一个“主”配置来保存实际的应用程序数据,然后创建一个“导出”配置来处理导出。导出配置中的实体应该是主实体的子实体。这样,它们将继承主实体的所有属性和关系。将主配置分配给主存储,将导出配置分配给导出文件


如果要导出数据,可以在导出配置中将主实体克隆到其子实体,然后将其保存到导出持久存储中。要导入数据,只需颠倒过程

您可以在一个上下文中将任意数量或持久性存储和模型网格在一起。唯一的主要限制是(1)在不同的模型中不能有相同名称的实体,(2)不能在商店之间形成关系

在您的情况下,您最有可能使用一个型号和两个商店。您可以使用configuration属性(参见文档)将不同的实体分配给不同的商店。我建议您创建一个“主”配置来保存实际的应用程序数据,然后创建一个“导出”配置来处理导出。导出配置中的实体应该是主实体的子实体。这样,它们将继承主实体的所有属性和关系。将主配置分配给主存储,将导出配置分配给导出文件


如果要导出数据,可以在导出配置中将主实体克隆到其子实体,然后将其保存到导出持久存储中。要导入数据,只需颠倒过程

这似乎是一种随意的说法——有许多基于文档的应用程序使用核心数据作为存储。数据库格式的更改不会比我的数据模型(已版本化)更频繁。NSCoder编码的文件与核心数据一样容易受到版本控制问题的影响。更不用说…(这里是iOS 5.0 NDA注释)这似乎是一个任意的陈述——有许多基于文档的应用程序使用核心数据作为存储。数据库格式的更改不会比我的数据模型(已版本化)更频繁。NSCoder编码的文件与核心数据一样容易受到版本控制问题的影响。更不用说…(这里是iOS 5.0 NDA评论)