更改代码并发布。现在应用程序在启动时超时,同时将持久存储协调器更新为新模型。想知道迁移是否是事务性的,这样我就可以弄清楚如何修复。迁移将在超时之前通过迁移获得 x%。
如果是事务性的,我只需要先启动应用程序然后迁移。如果不是事务性的,我担心用户将拥有仅部分迁移的架构。
背景
用于调用的代码
persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
正如预期的那样,当存在较新的数据库模型时,它会失败。以前会提示用户通过UIAlertView
. 然后将调用以下语句。
[persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:optionsDictionary error:&error]
initWithManagedObjectModel
如果失败,我决定运行第二行代码。除了这个语句在 `- (NSPersistentStoreCoordinator *)persistentStoreCoordinator ' 方法中运行之外,它并没有那么愚蠢,因此应用程序现在有时会在启动时超时。
在这个阶段我不知道该怎么做。数据库是半映射到新模型还是仍然代表以前的模型?