为什么我的轻量级迁移失败了?

时间:2015-05-29 20:35:44

标签: ios objective-c core-data

我正在开发一个使用CoreData和版本化数据模型的pod。在我最近的更改中,我从我之前的版本(3)创建了一个新版本(4)。我做的唯一更改是添加一个新实体,并在现有实体中添加一个新添加的实体。根据Apple的文档(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmLightweightMigration.html),这些是轻量级迁移支持的操作。

当我更新使用它并运行应用程序的项目中的pod时,即使我已将NSInferMappingModelAutomaticallyOptionNSMigratePersistentStoresAutomaticallyOption选项设置为YES,我也会收到错误

"Can't find model for source store"

在错误日志中,它表示NSStoreModelVersionHashesVersion是3.它应该是4吗?我无法告诉...... NSPersistentStoreCoordinator当前的模型哈希似乎是正确的版本(4)。

在文档中,它说:

  

要执行自动轻量级迁移,Core Data需要能够在运行时自行查找源和目标托管对象模型。 Core Data在NSBundle的allBundles和allFrameworks方法返回的包中查找模型。如果将模型存储在其他位置,则必须按照使用迁移管理器中所述的步骤进行操作,如果无法自动找到模型。

我没有触及过捆绑(我甚至不知道它们代表什么),也没有改变我店铺的URL。我的商店网址是

[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

我最后添加@"mystore.sqlite"。为什么我的迁移失败了?

注意:如果您想知道我是如何创建新的数据模型版本的,那么我完全按照此答案中的列出:https://stackoverflow.com/a/8363763/1084822

0 个答案:

没有答案