11

我的项目中有 .xcdatamodeld 文件,但它没有打开到数据模型中。

当我在 Xcode 中单击左侧边栏中的文件时,它会继续显示先前选择的文件的内容,而不是显示数据模型。同样,当我右键单击该文件并选择“Open As >”时,我无法选择将其显示为数据模型——什么也没有出现。我从 SVN 存储库中检查了代码,甚至文件管理器所有者也无法在他的工作区中看到它。

4

8 回答 8

16

这是我不时看到的症状。至少在一种情况下,这是由于 Xcode 在 project.pbxproj 文件部分的path组件中存储了错误的路径XCVersionGroup,并且在该部分中有明显不必要的附加name组件。手动编辑这个文件可能是可能的,但我总是不愿意直接使用项目文件,幸运的是有一个更简单的方法。

  1. 在 Finder 中导航到您的 .xcdatamodeld 文件。最简单的方法是右键单击/按住 Ctrl 键单击 .xcdatamodeld 文件并选择“在 Finder 中显示”。
  2. 将文件从 Finder 拖放到 Xcode 项目的 Project Navigator 中对 .xcdatamodeld 的当前引用的正上方或下方。
  3. 单击确定接受导入,确保将其添加到正确的目标。(哪些目标是正确的将取决于您的项目。)
  4. 现在,您将在 Project Navigator 中有两个对同一文件的引用。现在单击其中任何一个都将显示所需的数据模型结构。
  5. 删除对模型文件的重复引用。单击其中一个文件引用(似乎无关紧要,尽管删除旧的可能更好),然后按 Delete。
  6. 在出现的确认对话框中,请确保仅选择“删除参考”,并且不要将文件移动到垃圾箱。(这两个引用仅指向文件系统中的一个实际文件。移动到垃圾箱将因此丢弃唯一的副本。)

您现在只剩下一个对数据模型的引用,并且它可以工作。

似乎触发此错误的一件事是在磁盘上的文件结构中移动 .xcdatamodeld 文件。即使在正确地将文件与新位置重新关联之后(即它不再在侧边栏中显示为红色),上面提到的项目文件的一部分也没有正确更新,因此文件没有被完全正确地视为Xcode 数据模型文件。

于 2015-01-30T18:22:40.470 回答
5

我在 Xcode 6.3 中遇到了同样的问题

唯一对我有用的解决方案是将 .xcdatamodeld 文件从我的“资源”文件夹中移到Xcode 项目资源管理器中的项目根文件夹中(文件系统上的位置无关紧要)

我仍然不确定为什么,只是在项目结构中移动文件的位置会导致它在单击时根本不显示..但显然,至少在我的设置中,它不喜欢住在 Resources 文件夹中..

于 2015-07-10T16:12:36.007 回答
5

由于一些黑暗的原因,有时 Xcode 需要 xcdatamodel d字段位于根文件夹中。我在这里写了一个答案,解释了如何做到这一点,但也是一种解决方法,可以将这个文件放在你想要的任何地方。

干杯!

于 2015-09-07T09:53:36.077 回答
2

.xcdatamodeld文件是一个包。它包含.xcdatamodel包,每个版本的模型一个。每个.xcdatamodel里面都有一个contents文件,这是一个带有实体描述的XML 。要查看包中的内容,请在 Finder 中右键单击它们并选择“显示包内容”选项。

在 Finder 中显示包内容

也许您没有将contents文件添加到您的存储库中。这样,当您从中创建全新的工作副本时,您将无法看到您的模型。

于 2013-03-12T20:03:37.457 回答
2

我今天在 Xcode8 上成为这个问题的受害者。

我只是通过将 xcdatamodeld 文件放在项目导航器(左窗格)中的任何组之外来解决它。一移到群里,小家伙就再也打不开了。

于 2016-10-17T18:56:26.730 回答
1

Xcode 7.3.1 也有类似的问题。

事实证明,这与数据模型包的配置方式有关。

我发现有一个嵌入式模型包嵌套在另一个模型包中。假设一个名为 FolderNodes.xcdatamodeld 的顶级数据模型包含另一个名称完全相同的数据模型... FolderNodes.xcdatamodeld。FolderNodes.xcdatamodeld 内部是包含模型信息的实际内容文件。

我的解决方案是将嵌入式包 FolderNodes.xcdatamodeld(编号 2)拖到 Xcode 项目中,而不是其封闭文件夹中。

Apple 使用该包进行版本控制,但我认为与移动数据模型文件相关的逻辑以某种方式破坏了原始包,从而创建了冗余包装器。

于 2016-05-27T12:40:50.237 回答
1

确保您Version Editor的未激活。

Version Editor要显示的 xml 代码中打开结果而不是Data Model. 您也无法Data Model在 .xcdatamodeld 文件的上下文菜单中进行选择Project Navigator

于 2016-08-22T12:18:09.490 回答
0

也发生在 XCode 8.3 上。

对我来说,将物理文件移动到不同的文件夹,然后删除原始参考,然后将其添加回同一个位置并再次建立参考就可以了。

于 2017-08-12T11:23:31.507 回答