NSPersistentStore可以安全地打开两次吗?

时间:2014-02-04 11:15:17

标签: core-data nspersistentstore

作为我应用中的常规安全后台任务,我必须使用名为NSManagedObjectContext SaveAs ... 方法保存我的migratePersistentStore:toURL:options:withType:error:。但是,此方法从协调器中删除存储并添加新存储。这是致命的,因为我的完整UI基于从旧商店加载的对象。重新加载UI是没有选择的,因为用户可能在UI内部工作并且当前正在编辑从旧商店加载的对象。

我的想法是调出第二个协调器堆栈,moc等等,让这个副本执行迁移。可以由第二个协调员安全地打开NSPersistentStore readOnly )吗?我的猜测不是。我不明白为什么Apple在迁移后没有添加保留原始商店的选项。

1 个答案:

答案 0 :(得分:0)

如果您的商店是SQLite商店,那么您可以根据需要打开尽可能多的NSPersistentStoreCoordinator个商店。如果您没有使用SQLite商店,那么我不会推荐它。

但是,如果您正在进行备份,是否有理由不使用NSFileManager复制文件?应该比迁移快得多。足够快,您可以在复制过程中安全地锁定商店。