在项目中包含子模块 .xcdatamodeld 文件

Posted

技术标签:

【中文标题】在项目中包含子模块 .xcdatamodeld 文件【英文标题】:Including submodule .xcdatamodeld file in project 【发布时间】:2014-09-11 18:49:51 【问题描述】:

我目前正在构建多个共享同一个 CoreData 堆栈的应用程序。这包括模型、网络请求等。基本上所有的业务逻辑都保存在这个存储库中(我们称之为 DataKit)。 DataKit 项目生成一个名为 DataKit.a 的静态库

现在我有两个应用,App A 和 App B。它们都需要在 DataKit 中包含 .xcdatamodeld。我过去是如何做到这一点的,是从 DataKit 复制 .​​xcdatamodeld 文件并将其放入 App A 或 App B 项目中。这真的很难看,我正在尝试找出一种更简洁的方法来包含 .xcdatamodeld 文件,而无需将其复制到 App 项目中。

我尝试将 .xcdatamodeld 文件添加到 DataModel.a 的构建阶段中的复制文件阶段,但没有成功。

有人有什么建议/提示吗?

【问题讨论】:

【参考方案1】:

.xcdatamodeld 文件是托管对象模型的抽象表示,它编译.momd 文件中。 .momd 文件是 Core Data 打开的文件。对于您的项目,您需要在 Compile Sources 阶段拥有.xcdatamodeld,或者在依赖于库的目标的 Copy Files 阶段拥有 .momd 文件。显然,当尝试将代码作为库分发时,这非常麻烦。框架允许您包含资源(例如momd 文件),并且通常比库更灵活。 ios 8 允许动态框架,previous versions of iOS allow static frameworks 即使工具不完全支持它。

【讨论】:

哇,不知道 iOS 8 和动态框架。谢谢!【参考方案2】:

您可以在框架中包含一个返回正确数据模型的方法。不必作为单独的文件/目录存储在捆绑包中。

【讨论】:

1.他正在构建一个静态库,而不是一个框架。 2.从方法中返回模型对他的问题没有帮助,因为他根本无法包含要加载的模型。

以上是关于在项目中包含子模块 .xcdatamodeld 文件的主要内容,如果未能解决你的问题,请参考以下文章

我是不是可以在按 ID 分组的 tablix 行中包含子报表?

在 hive 的 select 语句中包含子查询结果

如何在我的文件转换脚本中包含子文件夹?

ERROR 1349:视图的 SELECT 在 FROM 子句中包含子查询

错误 #1349:View 的 select cluse 在 from 子句中包含子查询

在 JPA 的 SQL 查询中的 FROM 语句中包含子查询