NSMigrationManager无法将一个商店附加到另一个商店

时间:2016-05-22 20:34:48

标签: swift core-data ios9 database-migration

我正在尝试将两个Core Data sql存储合并在一起(iOS 9.3),而不必读取和复制源存储中的每个对象(涉及许多复杂的关系)。我应该可以使用NSMigrationManager执行此操作,如下所示:

try migrationManager.migrateStoreFromURL(sourceURL, type: NSSQLiteStoreType, options: nil, withMappingModel: map, toDestinationURL: destinationURL, destinationType: NSSQLiteStoreType, destinationOptions: nil)

然而,这给了我一个错误

  

Domain = NSCocoaErrorDomain Code = 134110“持久存储迁移期间发生错误。” reason =无法将源存储复制到目标存储路径{Error Domain = NSCocoaErrorDomain Code = 516“文件”Sample.sqlite“无法保存在”Documents“文件夹中,因为已存在同名文件。 }

这不应该发生。从NSMigrationManager的文档

  

如果目标网址上不存在商店,则会创建一个商店;否则,迁移将附加到现有商店。

然而,它似乎并不想追加。相反,它想要覆盖并失败。知道如何解决这个问题吗?

0 个答案:

没有答案