在项目中包含子模块 .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 行中包含子报表?
ERROR 1349:视图的 SELECT 在 FROM 子句中包含子查询