我在XCode中有一个主项目,它依赖于一个子项目来工作。子项目基本上是一个库,它还定义了一个数据库模型,以及与之交互的方式。
为了在主项目中使用子项目,我只是在主项目中删除了子项目xcodeproj文件,做了一些设置(如指定头搜索路径),就是这样。
我正在使用核心数据,但如果我试图直接使用。xcdatamodelid文件,通过创建管理对象上下文,它失败了:看起来主项目找不到子项目资源(除了。h和。m文件)。
到目前为止,我发现的唯一解决方案是将. xcdatamodelid文件从子项目复制到主项目中,它确实奏效了。但这并不令人满意,因为如果模型发生变化,我必须维护两个文件。我为这个问题挣扎了一段时间,我想在这里回答它,因为我相信它很重要。
为了将模型文件从子项目添加到父项目中,您只需在Finder中找到您想要添加的模型文件。然后,您可以将它们拖到项目中您认为合适的任何文件夹中。当Xcode显示"Choose options for add these files"提示符时,取消选择中的"Copy items into destination group’s folder"选项,你可以选择"Create Groups…"或"Create folder references…"。在此过程之后,您应该在Build Settings中的编译源代码阶段下看到模型文件。
需要注意的是,将模型文件(在Xcode中)从子项目拖拽到"Compile Sources"或父项目中,据我所知将不起作用,所以在Finder中进行。