我的项目中有 .xcdatamodeld 文件,但它没有打开到数据模型中。
当我在 Xcode 中单击左侧边栏中的文件时,它会继续显示先前选择的文件的内容,而不是显示数据模型。同样,当我右键单击该文件并选择“Open As >”时,我无法选择将其显示为数据模型——什么也没有出现。我从 SVN 存储库中检查了代码,甚至文件管理器所有者也无法在他的工作区中看到它。
这是我不时看到的症状。至少在一种情况下,这是由于 Xcode 在 project.pbxproj 文件部分的path
组件中存储了错误的路径XCVersionGroup
,并且在该部分中有明显不必要的附加name
组件。手动编辑这个文件可能是可能的,但我总是不愿意直接使用项目文件,幸运的是有一个更简单的方法。
您现在只剩下一个对数据模型的引用,并且它可以工作。
似乎触发此错误的一件事是在磁盘上的文件结构中移动 .xcdatamodeld 文件。即使在正确地将文件与新位置重新关联之后(即它不再在侧边栏中显示为红色),上面提到的项目文件的一部分也没有正确更新,因此文件没有被完全正确地视为Xcode 数据模型文件。
我在 Xcode 6.3 中遇到了同样的问题
唯一对我有用的解决方案是将 .xcdatamodeld 文件从我的“资源”文件夹中移到Xcode 项目资源管理器中的项目根文件夹中(文件系统上的位置无关紧要)
我仍然不确定为什么,只是在项目结构中移动文件的位置会导致它在单击时根本不显示..但显然,至少在我的设置中,它不喜欢住在 Resources 文件夹中..
由于一些黑暗的原因,有时 Xcode 需要 xcdatamodel d字段位于根文件夹中。我在这里写了一个答案,解释了如何做到这一点,但也是一种解决方法,可以将这个文件放在你想要的任何地方。
干杯!
该.xcdatamodeld
文件是一个包。它包含.xcdatamodel
包,每个版本的模型一个。每个.xcdatamodel
里面都有一个contents
文件,这是一个带有实体描述的XML 。要查看包中的内容,请在 Finder 中右键单击它们并选择“显示包内容”选项。
也许您没有将contents
文件添加到您的存储库中。这样,当您从中创建全新的工作副本时,您将无法看到您的模型。
我今天在 Xcode8 上成为这个问题的受害者。
我只是通过将 xcdatamodeld 文件放在项目导航器(左窗格)中的任何组之外来解决它。一移到群里,小家伙就再也打不开了。
Xcode 7.3.1 也有类似的问题。
事实证明,这与数据模型包的配置方式有关。
我发现有一个嵌入式模型包嵌套在另一个模型包中。假设一个名为 FolderNodes.xcdatamodeld 的顶级数据模型包含另一个名称完全相同的数据模型... FolderNodes.xcdatamodeld。FolderNodes.xcdatamodeld 内部是包含模型信息的实际内容文件。
我的解决方案是将嵌入式包 FolderNodes.xcdatamodeld(编号 2)拖到 Xcode 项目中,而不是其封闭文件夹中。
Apple 使用该包进行版本控制,但我认为与移动数据模型文件相关的逻辑以某种方式破坏了原始包,从而创建了冗余包装器。
确保您Version Editor
的未激活。
在Version Editor
要显示的 xml 代码中打开结果而不是Data Model
. 您也无法Data Model
在 .xcdatamodeld 文件的上下文菜单中进行选择Project Navigator
。
也发生在 XCode 8.3 上。
对我来说,将物理文件移动到不同的文件夹,然后删除原始参考,然后将其添加回同一个位置并再次建立参考就可以了。