【发布时间】:2018-08-08 10:10:03
【问题描述】:
mom vs momd 扩展
在我的项目中,我使用momd 扩展从捆绑包中获取.xcdatamodel,一个月前它工作正常,但今天每次我尝试访问Core data 对象时它开始崩溃说modelURL nil in下面的代码
private lazy var managedObjectModel: NSManagedObjectModel = {
guard let modelURL = Bundle.main.url(forResource: self.modelName, withExtension: "momd”) else {
fatalError("Unable to Find Data Model URL")
}
guard let managedObjectModel = NSManagedObjectModel(contentsOf: modelURL) else {
fatalError("Unable to Load Data Model")
}
return managedObjectModel
}()
所以在查看this 问题后,在那个问题中,他使用mom 作为扩展,所以我将上面的代码更改为mom,现在它工作正常,但这是一个 6 岁的问题.所以我无法弄清楚这在我的项目中是如何突然成为一个问题的。
甚至苹果官方docs 使用momd 作为扩展。
以及如何确保哪个始终有效并仅使用它以及@yuji在那个问题中指出
获取 .mom(d) 文件并不是完全推荐的方式。 改用mergedModelFromBundles
那么这如何与单个 .xcdatamodel 一起工作
【问题讨论】:
-
modelUrl 为零?
-
您是否考虑过改用NSPersistenContainer?
-
我有多个上下文,使用苹果默认的 persistentContainer 实现处理它们会让人感到困惑,它确实简化了,但在评论中他们写道 /*此属性是可选的,因为存在合法的错误条件可能会导致商店的创建失败。 */
标签: ios swift core-data bundle