ios - 核心数据 : annotation: Failed to load optimized model at path '/var/containers/Bundle/.... '

标签 ios swift xcode core-data

每次使用核心数据时,我都会在调试器中收到此错误(因此,如果我进行 3 次调用,我会收到 3 次警告)。

CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/0B6C2326-D8D5-47B3-8C68-7693C16A0806/liveDemo.app/liveDemo.momd/liveDemo.omo'

它不会立即引起任何问题,但是当它们加起来时,它会逐渐减慢应用程序的速度,直到它因 NSException 而崩溃(这与用户当时的操作无关,它只会越来越滞后然后出现在应用程序的任何一点崩溃)。

我已经在 3 台设备(iPhone 7+ - iOS 11、iPhone 7 - iOS 11、iPad Aid - iOS 10.3)上测试了该应用程序,它只出现在 iPad 上。然而,当我开始这个项目时,其中一部手机安装了 iOS 10 版本并且没有引起任何问题,所以虽然我不能完全排除它,但似乎不太可能是操作系统版本的问题。

尝试过的步骤

  1. 卸载并安装应用程序,以便设备清除核心数据文件,还尝试在安装和未安装应用程序的情况下重新启动 - 失败

  2. 在 Xcode 中删除并重写方案 - 失败

  3. 重新创建数据模型的 NSManagedObjectSubclass - 失败

有没有人遇到过与最新版本的 Xcode 类似的问题并设法修复了它? This is a 2 year old similar problem ,但没有一个答案有帮助。

最佳答案

所以,几天后我设法解决了这个问题。我对 Xcode 的内部还不够熟悉,但我所要做的就是重写 CoreData 模型。最好在尝试此操作之前进行备份!

  1. 截取当前属性的屏幕截图并删除 CoreDataModel(.xcdatamodeld 文件)
  2. 向项目添加新文件(数据模型模板)
  3. 写旧属性
  4. 重新编译构建

我的假设是问题是在将一个在 Xcode 8(用 Swift 3 编写)中启动的项目迁移到 Xcode 9(升级到 Swift 4)之后引起的。它在运行 iOS 11(与 Xcode 9 相同的升级级别)的设备上没有问题,但发现它在旧的 iOS 版本中一直导致延迟并最终崩溃。

我不明白为什么简单地修改文件属性不能修复它,但我很高兴修复它并继续前进。

关于ios - 核心数据 : annotation: Failed to load optimized model at path '/var/containers/Bundle/.... ' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891163/

相关文章:

ios - UIScrollView 内的 CPTXYGraph

C++11 模板代码 - 无法在 XCode 中编译

iphone - 虚拟 LAN 上的推送通知

ios - iRate 使用 Swift 编译错误

ios - 使用其他参数上传 Alamofire 4 和 Swift 3 图片

ios - table view.reloadData() 在 TableView 中不起作用

swift - swift 3、Xcode 中的设置按钮

swift - 无法将 Kanna.libxmlHTMLNode 类型的值转换为“NSString”

ios - 2016 图标大小和名称?

ios - 一次向核心 - 数据关系添加多个操作