为什么我需要2个或更多Core Data模型?

我很想知道谁使用多个核心数据模型以及为什么,有什么好处,我正在开发一个应用程序,我认为我可以从多个模型中受益,但我不确定其他好处。

我的即将到来的应用程序将用于iPad和iPhone的另一个版本,iPad有3个主要内容,iPhone只有一个也在iPad上,因此通过将其隔离到不同的核心数据模型可能保持该模型的更改我的两个应用程序会更容易。

虽然我确实有两个实体,但我可以将它们复制或拥有一个大型模型。

有什么建议么 ?

无论如何,这当然不是常见情况,其他场景可能会导致您创建多个Core Data模型?

有时将不同类型的数据保存在不同的商店中是有意义的。 例如,像产品目录一样工作的应用程序可能有一个商店是产品数据库,另一个商店跟踪用户的collections夹,当前订单和历史记录。 这使得在不影响用户数据的情况下更新产品数据库相对容易,并且无需复制整个产品数据库即可备份用户数据。

您使用多个商店的另一种情况是存储相同类型的数据。 例如,基于文档的应用程序通常会为每个文档创建一个单独的存储 – 商店可能文档。

更新:我上面写的内容使用单独的商店 ,但您询问使用单独的模型 。 Core Data实际上允许您定义单独的模型,然后在运行时将它们合并在一起,以便在同一个商店(或多个商店)中使用。 所以,为了清楚起见, 模型定义了实体以及它们之间的关系。 商店是使用模型中定义的模式实际保存数据的位置。 您可能会将一个复杂的模型分解为几个较小的模型,只是为了保持简单,并在您随着时间的推移修改模型时帮助迁移数据,或者您可能会使用多个模型并将它们分开,因为您计划使用包含的不同商店如上所述,不同类型的数据。

我建议只使用1个核心数据模型。 如果你将它们分开,你将无法使用Core Data的许多function,例如关系(数据存储中的对象之间)等。即使你现在没有看到需要,你可能会来想要在以后需要它时添加到应用程序。

您仍然可以为iPad和iPhone使用相同的核心数据模型,只需忽略您未使用iPhone的部分(直到您获得添加缺失部分的function请求,您很可能会这样做)。 然后你将全部设置并且已经有数据可用。

只有在极端情况下才值得使用单独的数据模型,例如,如果您要下载只读的现有数据集等。您可以将只读数据集与用户设置/数据等分开。

祝你好运!