CoreData+iCloud同步时间混乱



我的问题是如何控制CoreData(本地数据库)与iCloud同步的时间。据我所知,如果我更改本地数据,iCloud将自动更改。有可能iCloud与本地同步数据,直到我准备好?

有一种两步同步。您的本地数据首先放入容器中进行同步,然后容器与iCloud同步。这是由整个系统的恶魔完成的。你无法控制。

您希望在"本地文档"one_answers"云文档"之间有所不同。正如评论中提到的,这类似于反概念。然而,有两种策略可以做到这一点。我没有测试过它们。

  1. 不要将您所做的更改保存在内存中。

  2. 添加存储的本地版本,并使用migratePersistentStore:toURL:options:withType:error:NSPersistentStoreCoordinator)在本地版本和同步版本之间迁移。

这两种变体都有一个很大的缺点:如果延迟保存(同步的)文档的时间,那么本地版本和无处不在的版本可能会越来越多地流失。这可能导致无法解决的冲突。这是苹果建议尽快、经常保存商店的原因。BTW:核心数据与iCloud同步不是群件。甚至不要尝试以这种方式使用它。

没有直接的方法来控制时间,但在通过save:方法提交托管对象上下文的更改之前,不会执行本地-iCloud同步

最新更新