是否可以在一个应用程序中使用多个 Core Data 模型?
Posted
技术标签:
【中文标题】是否可以在一个应用程序中使用多个 Core Data 模型?【英文标题】:Is possible to use several Core Data models inside an app? 【发布时间】:2014-02-10 09:32:55 【问题描述】:我们有一个已经投入生产的应用,它的核心数据模型需要我们替换。我们的服务器端发生了很多变化,我们希望更新模型以反映这些变化和新功能。
我们讨论的是从头开始创建另一个模型并摆脱旧模型,而不是执行自定义核心数据迁移。我们不需要在我们的实际模型中保留任何现有数据,因为它们都在我们的服务器中可用,因此当用户再次需要它时,应用程序会在请求时下载它。
是否可以创建一个新模型,告诉应用使用它并安全地删除旧模型?有没有其他方法可以解决这个问题?
【问题讨论】:
当然,这是您可以处理的一种选择 【参考方案1】:您可以拥有任意数量的模型。如果您使用 Apple 的 Core Data Stack 模板,那么您应该更改 managedObjectModel 和 persistentStoreCoordinator 以反映您的模型和文件的新名称。
如果您在本地不需要任何旧数据,那么在准备好具有新模型名称的新模型后修改这两种方法就足够了。
另一种选择是通过新模型版本自动迁移现有数据,但在您的情况下似乎确实需要。
【讨论】:
在更新现有应用方面,只要我指出模型的新名称,我应该没有任何关于核心数据堆栈初始化的问题,真的吗? 如果您使用 Apple 的 Core Data Stack 模板,那么您只需要创建新模型(New File->Data Model),定义新实体、属性和关系,然后创建 NSManagedObject子类(Editor->Create NSManagedObject Sublclass...),然后更新 AppDelegate.m 中提到的这 2 个方法的 URL,以反映新模型,也许是一个新文件,它将起作用。以上是关于是否可以在一个应用程序中使用多个 Core Data 模型?的主要内容,如果未能解决你的问题,请参考以下文章
可以将 Core Data 与不同的预填充 sqlite db 一起使用吗?
如何使用同一个连接表创建多个多对多关系 [EF7/Core]