Ios 核心数据,mom与momd扩展

Ios 核心数据,mom与momd扩展,ios,swift,core-data,bundle,Ios,Swift,Core Data,Bundle,mom与momd扩展的比较 在我的项目中,我使用momd扩展从捆绑包中获取.xcdatamodel,一个月前它工作得很好,但今天每次我尝试访问核心数据对象时,它开始崩溃,在下面的代码中说modelURLnil private lazy var managedObjectModel: NSManagedObjectModel = { guard let modelURL = Bundle.main.url(forResource: self.modelName, withExten

mom与momd扩展的比较

在我的项目中,我使用
momd
扩展从捆绑包中获取
.xcdatamodel
,一个月前它工作得很好,但今天每次我尝试访问
核心数据
对象时,它开始崩溃,在下面的代码中说
modelURL
nil

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
}()
所以在看了这个问题之后,在那个问题中,他使用了
mom
作为扩展,所以我将上面的代码改为
mom
,现在它工作正常,但这是一个6年前的问题。所以我无法理解这是如何突然成为我项目中的一个问题。 甚至苹果官方也使用
momd
作为扩展

还有,如何确保哪一个总是有效的,并且只使用它,在这个问题上@yuji指出

获取.mom(d)文件并不完全是推荐的方法。 改用mergedModelFromBundles


那么,单.xcdatamodel

modelUrl为零时,这究竟是如何工作的呢?您是否考虑过改用它?我有多个上下文,使用apple默认的persistentContainer实现来处理它们会让人困惑,它确实简化了,但在COMMET中,它们写入/*此属性是可选的,因为存在可能导致存储创建失败的合法错误条件*/