作为我应用中的常规安全后台任务,我必须使用名为NSManagedObjectContext
的 SaveAs ... 方法保存我的migratePersistentStore:toURL:options:withType:error:
。但是,此方法从协调器中删除存储并添加新存储。这是致命的,因为我的完整UI基于从旧商店加载的对象。重新加载UI是没有选择的,因为用户可能在UI内部工作并且当前正在编辑从旧商店加载的对象。
我的想法是调出第二个协调器堆栈,moc等等,让这个副本执行迁移。可以由第二个协调员安全地打开NSPersistentStore
( readOnly )吗?我的猜测不是。我不明白为什么Apple在迁移后没有添加保留原始商店的选项。
答案 0 :(得分:0)
如果您的商店是SQLite
商店,那么您可以根据需要打开尽可能多的NSPersistentStoreCoordinator
个商店。如果您没有使用SQLite
商店,那么我不会推荐它。
但是,如果您正在进行备份,是否有理由不使用NSFileManager
复制文件?应该比迁移快得多。足够快,您可以在复制过程中安全地锁定商店。