更改模型后的核心数据迁移

时间:2018-03-01 13:47:02

标签: ios core-data

我已经改变了我的核心数据模型,并在几周后发现它导致旧应用程序版本崩溃。我收到错误:

Error Domain=NSCocoaErrorDomain Code=134140 "Persistent store migration failed, missing mapping model." 

我的问题是,我不记得在我的模型中更改任何内容,并且不知道导致迁移问题的原因。有什么方法可以让我找到这个,或者看一下旧版本的模型吗?

(我的项目目前尚未受版本控制。)

2 个答案:

答案 0 :(得分:0)

你不太可能知道你改变了什么。 我的猜测是你对一个现有的模型版本进行了编辑,因为它与同一模型的先前版本一起安装 - 核心数据崩溃。

在那种情况下,你真的没什么可做的。只需捕获持久存储协调器抛出的错误,从所述URL中删除存储并添加新存储。

do {
    try persistentStoreCoordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: storeURL)
} catch let error {        
    print("Error adding persistent store: \(error). Will try with a new one.")
    do {
        try FileManager.default.removeItem(at: storeURL)
        try persistentStoreCoordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: storeURL)
    } catch let error {
        fatalError("Failed creating new persistent store with error: \(error)")
    }
}

在你的项目中添加和使用git - 即使你没有在GitHub或任何其他存储库托管上托管源代码,它也非常简单且非常有用 - 只是针对这样的情况。 / p>

答案 1 :(得分:0)

我有同样的问题。我从模拟器或物理设备上删除了该应用,然后将其重新安装。