我有一个名为“Model”的模型文件。如果我将其重命名为“SomeOtherName”,它就不会被加载。
initWithContentsOfURL
返回 nil 并且:
mergedModelFromBundles: [NSArray arrayWithObjects:[NSBundle mainBundle], nil];
...崩溃,因为它认为该数组中存在 nil。
我可以重命名我的模型,那么有什么问题吗?我无法向您提供更多信息,因为我没有:P SomeOtherName 模型放置在 bundle 中,它应该可以正常加载。
谢谢
最佳答案
我刚刚遇到了同样的问题。这是我解决这个问题的方法:
仅重命名模型文件是不够的,因为它不会重命名对当前模型版本的引用。
事实证明,模型版本存储在单独的 plist 文件中。只需在文本编辑器中打开它,然后将旧名称更改为新模型文件名。
文件:YourNEWModelFile.xcdatamodeld/.xccurrentversion
<plist version="1.0">
<dict>
<key>_XCCurrentVersionName</key>
<string>YourModelFile.xcdatamodel</string> <-- Change this to YourNEWModelFile
</dict>
</plist>
请注意,您应该仅在开发期间重命名模型文件时才执行此操作。要将数据模型迁移到新版本,请遵循核心数据文档。
关于cocoa - 重命名时不会加载核心数据模型文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044643/