如何在 iPhone 应用程序之间共享一个 Core Data 模型?

Posted

技术标签:

【中文标题】如何在 iPhone 应用程序之间共享一个 Core Data 模型?【英文标题】:How to share a piece of Core Data model across iPhone apps? 【发布时间】:2010-07-23 07:12:38 【问题描述】:

如果有的话,有什么好的模式可以在 iPhone 应用程序之间共享一段 Core Data 模型,就像我共享代码、图像和其他资源一样?

我正在考虑在一个应用程序中开发我的模型,然后将其作为资源包含在另一个应用程序中。但我无法理解如何做到这一点。仅包含生成的模型代码文件是否足够,我可以将其包含为代码?但这感觉不对,我想我也需要实际的数据模型文件,这是一些不透明的资源。但是说这两个应用程序还有其他我不想在它们之间共享的核心数据模型对象? (如果我确实想分享所有内容,我想我可以分享 xcdatamodeld 文件,但我特别想只分享图表的一个孤立部分。)

举一个具体的例子,应用程序 1 具有相关的模型对象 A 和 B,以及相关的模型对象 C 和 D。但是,A-B 与 C-D 无关。 App 2 有 C-D 和 E-F。我想在应用程序之间共享 C-D(两个模型对象及其关系),目标是模式更新在应用程序之间保持同步。 (仅共享模型,不共享数据。)

【问题讨论】:

【参考方案1】:

由于商店是通过在任何特定应用中合并现有模型来创建的,因此您可以根据需要混合模型。但是,一旦您使用一组特定的模型文件创建了商店,您就必须让这些模型文件在将来始终可用。

【讨论】:

您能否详细说明一下在我的示例中这在 Xcode 中的实际工作方式? 使用Project>Add To Project... 在app 1项目中,只需添加单独的模型文件A、B、C、D。只要模型没有定义相同的实体,它们就可以毫无问题地合并。在 app 2 项目中,只需添加单独的模型文件 C、D、E、F。在Add To Project 对话框中,您可以选择将文件复制到项目中。不要复制,而是在两个应用程序中使用相同的文件,这样您只更改一个文件。

以上是关于如何在 iPhone 应用程序之间共享一个 Core Data 模型?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:如何在我的 TabBarViewController 和各个选项卡之间共享信息?

在同一应用 iPhone 中的设备之间共享数据

iPhone 和 Apple Watch 应用之间的核心数据共享

如何设置iphone与电脑共享文件

我可以在通用应用程序中制作一个可以在 iPhone 和 iPad UI 之间共享的 XIB/NIB 吗?

哪个条件编译用于在 Mac 和 iPhone 特定代码之间切换?