每次使用核心数据时,我都会在调试器中收到此错误(因此,如果我进行 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 版本并且没有引起任何问题,所以虽然我不能完全排除它,但似乎不太可能是操作系统版本的问题。
尝试过的步骤
卸载并安装应用程序,以便设备清除核心数据文件,还尝试在安装和未安装应用程序的情况下重新启动 - 失败
在 Xcode 中删除并重写方案 - 失败
重新创建数据模型的 NSManagedObjectSubclass - 失败
有没有人遇到过与最新版本的 Xcode 类似的问题并设法修复了它? This is a 2 year old similar problem ,但没有一个答案有帮助。
最佳答案
所以,几天后我设法解决了这个问题。我对 Xcode 的内部还不够熟悉,但我所要做的就是重写 CoreData 模型。最好在尝试此操作之前进行备份!
- 截取当前属性的屏幕截图并删除 CoreDataModel(.xcdatamodeld 文件)
- 向项目添加新文件(数据模型模板)
- 写旧属性
- 重新编译构建
我的假设是问题是在将一个在 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/