Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 更改核心数据管理对象模型的文件名_Objective C_Xcode_Ios_Core Data - Fatal编程技术网

Objective c 更改核心数据管理对象模型的文件名

Objective c 更改核心数据管理对象模型的文件名,objective-c,xcode,ios,core-data,Objective C,Xcode,Ios,Core Data,如何更改核心数据管理对象模型的文件名 我想更改Xcode项目中核心数据管理对象模型的文件名。我不关心任何移民问题 我当前以以下方式访问代码中的文件: NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"Template" ofType:@"momd"]; 我还没有找到一种方法来更改momd文件名/包,从而不会导致Xcode无法找到更改后的文件名。多次这样做 只需重命名xcdmodel,并在

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

我想更改Xcode项目中核心数据管理对象模型的文件名。我不关心任何移民问题

我当前以以下方式访问代码中的文件:

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

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

多次这样做


只需重命名xcdmodel,并在从包中加载它时注意其名称。在运行之前,请确保清洁目标。例如删除所有预编译的文件,否则他认为他已经编译了模型,因此你的应用程序无法加载momd,因为它们的名称错误。

很确定这就是原因:

你在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>

您是否用新名称拖动该文件或重命名现有文件?这可能很愚蠢,但您尝试在Xcode中右键单击该文件并选择“重命名…”。。。有吗?Xcode中“组”下显示的名称不是托管对象模型的文件名,也不是加载托管对象模型时在代码中使用的文件名。我相信这就是我看到的问题:。在过去,模拟器神秘地保留了旧的.mom和.momd文件。我建议在您更改名称后将应用程序从模拟器中删除。支持TechZen的建议。过去版本的Xcode给了我们奇怪的行为,除非我们删除了应用程序,并清除了DerivedData文件夹进行引导。我已经有一段时间没有看到这个问题了,所以我打赌它在最新版本中已经修复了。我为这个问题挣扎了几个小时,从模拟器上删除这个应用解决了这个问题。所以,这仍然发生在Xcode 5上。感谢您为我指明了正确的方向。另外,请确保在AppDelegate中编辑managedObjectModel和PersistentStoreCoordinator或BugReports不属于outsite Apple Bugreporter。这意味着有人不喜欢openradar: