2011-05-02 39 views
0

如何更改核心数据管理对象模型的文件名?更改核心数据管理对象模型的文件名称

我想在我的Xcode项目中更改Core Data托管对象模型的文件名。我不关心任何移植问题。

我目前访问该文件在我的代码是这样的:

NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"Template" ofType:@"momd"]; 

我还没有找到一种方法来改变momd文件名/包,不会导致Xcode中无法找到更改文件名。

+0

你拖到新名称的文件或重命名现有的文件? – saadnib 2011-05-02 04:34:11

+0

这可能很愚蠢 - 但是您尝试在Xcode上右键单击文件并选择重命名...那里? – nielsbot 2011-05-02 04:39:47

+0

组中Xcode中显示的名称不是托管对象模型的文件名 - 也不是您在加载托管对象模型时在代码中使用的文件的名称。 – Erik 2011-05-02 04:51:32

回答

-1

很肯定这是原因:http://openradar.appspot.com/7500956

+0

Bugreports不属于Appsite Bugreporter。 – 2014-01-21 20:51:08

+0

这是什么意思? – Erik 2014-01-22 02:50:59

+0

这意味着有人不喜欢openradar :) – 2015-08-14 16:42:32

4

做了几次。

只需重命名xcdmodel并在从包中加载它时注意名称。运行之前,请确保清洁目标。 (例如,删除所有预编译的文件,否则,他觉得他已经编译模型,因此您的应用程序失败,因为他们在那里有错误的名称来加载momd)

+0

过去,模拟器神秘地保存了旧的.mom和.momd文件。我建议您在更改名称后删除模拟器上的应用程序。 – TechZen 2011-05-02 20:46:31

+0

附上TechZen的建议。除非我们删除了应用程序,并且还清除了“DerivedData”文件夹以启动,Xcode的过去版本给了我们奇怪的行为。在一段时间内没有看到,尽​​管如此,赌注它是在最新版本中修复的。 – 2012-02-20 13:16:45

+0

我一直在努力解决这个问题几个小时,并从模拟器上删除应用程序解决了它。所以,这仍然发生在Xcode 5上。感谢您指引我朝着正确的方向发展。 – adamkrell 2014-01-20 21:45:44

6

您在"model".xcdatamodeld内有隐藏文件.xcurrentversion

只需编辑这个文件,以匹配模型的新名称:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$ 
<plist version="1.0"> 
<dict> 
     <key>_XCCurrentVersionName</key> 
     <!-- This name should be the same as the file name !--> 
     <string>"model".xcdatamodel</string> 
</dict> 
</plist> 
相关问题