我已经改变了我的核心数据模型,并在几周后发现它导致应用程序的旧版本崩溃。我收到错误:
Error Domain=NSCocoaErrorDomain Code=134140 "Persistent store migration failed, missing mapping model."
我的问题是我不记得在我的模型中改变任何东西并且不知道导致迁移问题的原因。有什么方法可以让我找到这个,或者看看旧版本的模型?
(我的项目目前还没有受版本控制。)
你不太可能知道你改变了什么。我的猜测是你对一个现有的模型版本进行了编辑,因为它与同一模型的先前版本一起安装 - 核心数据崩溃。
在那种情况下,你无法真正做到。只是在持久存储协调器抛出错误时捕获错误,从所述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或任何其他存储库托管上托管源代码 - 仅适用于此类情况。