【问题标题】:Incompatible Object Model Version不兼容的对象模型版本
【发布时间】:2011-06-15 00:36:06
【问题描述】:

谁能解释这里发生了什么?我有一个刚刚从我的应用程序的新版本中保存的文件 - 但是如果我关闭我的应用程序并双击该文档文件,它会给我这个错误:

The document “main” could not be opened. The managed object model version used to open the persistent store is incompatible with the one that was used to create the persistent store.

现在,我已经检查了谷歌,这似乎很常见,但是,我尝试了删除应用程序支持文件夹中文件的建议(它的文件夹由于某种原因不存在)并清除了所有目标XCode(构建>清理所有目标)没有运气。最奇怪的是,当我接受错误并查看它加载的应用程序时,它是一个旧版本。我在哪里可以找到我的应用程序的这个神秘版本以及如何修复它??!

【问题讨论】:

    标签: objective-c cocoa xcode macos interface-builder


    【解决方案1】:

    我通过禁止 CoreData 版本检查解决了这个问题:

      NSDictionary *options = @{NSIgnorePersistentStoreVersioningOption:@NO}
      NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mom];
      if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:options error:&error]) {
        [[NSApplication sharedApplication] presentError:error];
        return nil;
      }
    

    【讨论】:

      【解决方案2】:

      仅针对遇到此问题的任何人 - 我在正确安装应用程序时也遇到了问题(在测试 App Store 提交时),并且在查看安装程序日志时,它在计算机上的某些 WEIRD 位置显示了我的应用程序。删除这些并重新安装(或者不要,如果只是从 XCode 调试)并解决问题。

      【讨论】:

      • 托管对象模型的重新定位:一些文档说它在 ~/Library/Application Support/YOUR_APP_NAME,但我在 ~/Library/YOUR_APP_NAME 中找到了我的。如果您对核心数据模型进行了更改并最终导致加载问题,请尝试删除此目录并重新构建。
      • 如果在 OS X 10.7+ 上找不到应用的路径,当应用被沙盒化时,它会存储在:~/Library/Containers/com.yourcompany.yourAppName/跨度>
      • 我有 Mountain Lion 10.8.2 和 Xcode 4.5.2,由于某种原因,该文件夹位于:/Users//Library/Developer/Xcode/DerivedData/。在我删除 app_folder 后,它起作用了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      相关资源
      最近更新 更多