【发布时间】:2012-01-28 15:04:48
【问题描述】:
我正在使用 Xcode 4.2,并且正在尝试使用 Core Data。单击 .xcdatamodeld 文件后,我看到了一个奇怪的视图,而不是数据模型编辑器视图。
我已经重新安装了 Xcode 4.2,甚至从头开始创建了一个启用 Core Data 的入门项目,但问题仍然存在。当我使用新文件创建数据模型时 --> 数据模型。它没有被识别为 DataModel。 Ctrl+单击 --> 'Open As' 仅显示“Preview”选项。我将我的基本项目与在另一台机器上创建的项目(一切正常)进行了比较。目录差异显示:
Foos.xcdatamodeld 文件放置在项目构建阶段的“复制捆绑资源”部分下,而不是位于“编译源”部分下。我将此文件移动到“编译源”部分,但数据模型编辑器仍然不显示。
工作项目中的 Foos/Foos.xcdatamodeld/.xccurrentversion 文件看起来像
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>_XCCurrentVersionName</key>
<string>Foos.xcdatamodel</string>
</dict>
</plist>
在非功能性的时候是
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>
- 我注意到的唯一其他区别是工作版本在 project.pbxproj 文件中有以下内容
/* Begin XCVersionGroup section */
831B12C114A7F73600524A33 /* Foos.xcdatamodeld */ = {
isa = XCVersionGroup;
children = (
831B12C214A7F73600524A33 /* Foos.xcdatamodel */,
);
currentVersion = 831B12C214A7F73600524A33 /* Foos.xcdatamodel */;
path = Foos.xcdatamodeld;
sourceTree = "";
versionGroupType = wrapper.xcdatamodel;
};
/* End XCVersionGroup section */
而坏掉的没有这个条目。
我在两台机器上对 /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates 进行了目录比较,模板完全相同。
所以我想知道 Xcode 的哪一部分在我的主要开发机器上导致了上述差异。关于尝试的事情或可能导致此问题的任何建议?
【问题讨论】:
-
你能解决这个问题吗,我也打不开coredata模型文件
-
很遗憾没有。我使用我的另一台 Mac 笔记本电脑创建了初始模型并将其复制到我的主要开发机器上,这可以正常打开。
-
我几乎不得不创建一个新项目并复制模型
-
当我在里面添加带有模型的文件夹引用时遇到了同样的问题。我设法解决了单独添加 xcdatamodeld 文件的问题。也许它以某种方式连接到版本控制,但除了删除对 xcdatamodeld 文件的引用并单独添加它之外没有任何帮助。
-
如果您将文件类型显式更改为版本化核心数据模型(而不是默认设置),是否有帮助? (我曾经在 .nib/.xib 文件中遇到过类似的问题,我必须显式设置 Interface Builder 的文件类型,否则它们会以 XML 类型的代码出现。)
标签: xcode ios5 editor datamodel