【问题标题】:.xcdatamodeld file not showing data model structure in Xcode.xcdatamodeld 文件未在 Xcode 中显示数据模型结构
【发布时间】:2013-02-28 11:59:14
【问题描述】:

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

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

【问题讨论】:

    标签: ios xcode macos core-data watchkit


    【解决方案1】:

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

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

    【讨论】:

    • 该包中有另一个文件,我现在不记得它的名称(可能是布局),它可能会损坏。删除该文件并重新打开,Xcode 应该会创建一个包含可见元素的新布局。
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      【解决方案4】:

      由于一些不为人知的原因,有时 Xcode 需要 xcdatamodeld 字段位于根文件夹中。 我写了一个答案here,解释了如何做到这一点,但也是一个解决方法,可以让这个文件放在你想要的任何地方。

      干杯!

      【讨论】:

        【解决方案5】:

        我在使用 Xcode 7.3.1 时遇到了类似的问题。

        原来这与数据模型包的配置方式有关。

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

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

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

        【讨论】:

          【解决方案6】:

          确保您的Version Editor 未激活。

          打开Version Editor 会导致显示xml 代码而不是Data Model。您也无法在Project Navigator 内的xcdatamodeld 文件的上下文菜单中选择Data Model

          【讨论】:

            【解决方案7】:

            我今天在 Xcode8 上遇到了这个问题。

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

            【讨论】:

            • 也为我工作。令人沮丧的是,新创建的文件也会出现此问题。
            【解决方案8】:

            也发生在 XCode 8.3 上。

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-12-25
              • 2017-12-26
              • 1970-01-01
              • 2019-09-22
              • 2015-12-13
              • 1970-01-01
              相关资源
              最近更新 更多