mom与mom扩展
在我的项目中,我使用momd扩展从包中获取.xcdatamodel,一个月前它运行良好,但是今天每当我尝试访问Core data对象时,它就开始崩溃,在下面的代码中表示modelURL为零。
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指出,
要获得the .mom(D)文件并不完全是推荐的方法。使用mergedModelFromBundles代替
那么,如何在单个.xcdatamodel中准确地工作呢?
发布于 2021-10-01 23:44:09
创建新模型时,默认情况下会得到两个文件: MyDataModel.momd和嵌套MyDataModel.mom。
添加版本时,将创建另一个mom文件并将其添加到momd中。
当您通过指向momd文件创建NSManagedObjectModel实例时,将使用当前版本(如检查器文件窗格中所选)。如果需要访问模型的早期版本,例如迁移模型时,请指向mom文件。
https://stackoverflow.com/questions/51744037
复制相似问题