cocoa - 重命名时不会加载核心数据模型文件

标签 cocoa core-data

我有一个名为“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/

相关文章:

iphone - 为什么在 iPad 上删除后需要 CoreData forceFetch 而在 iPhone 上则不需要?

cocoa - 如何使我的应用程序从 Finder 图标展开/折叠到 Finder 图标?

iphone - 数据库设计困境

cocoa - "helper app"和 GUI 应用程序如何相互通信?

iphone - 如何在 UIImageView 中设置图片

iphone - 核心数据、UITableView 和 UISegmentedControl

iphone - 检查 NSFetchedResultsController 是否不返回任何对象

cocoa :NSView触摸事件

swift - 从 CoreData 刷新 NSTreeController

cocoa - 在代理后面使用 WebView (cocoa)