我有一个iCloud的工作实现。现在我想通过添加一些合并功能来改进冲突处理。我一直试图想出一种强制冲突用于测试目的的一致方法,但到目前为止我没有运气,当我预期它们发生时,冲突不会持续发生。这可能表明我做错了,或者说我误解了iCloud的工作原理(还有一件事,我的意思)。
我正在使用UIDocument,是的,我正在收听UIDocumentStateChangedNotification。事实上,我偶尔会收到一些冲突通知。另外,我在iCloud中只有一个文件。
让两个设备使用相同的iCloud accout,这是我期望总是引起冲突的事件流:
就像SVN这样的版本控制系统,我期待设备B的版本引起冲突,因为需要“更新”才能获得设备A上传的版本。
我错误地期待我刚刚描述的场景中的冲突吗?为什么?有没有其他方法可以持续强制冲突?
谢谢!
答案 0 :(得分:4)
我原本认为引发冲突的更好方法是:
当应用程序的两个实例在本地更改文件时,会发生冲突,然后这两个更改都会传输到iCloud。例如,当设备处于飞行模式时进行更改并且无法立即将更改传输到iCloud时,可能会发生这种情况。当它确实发生时,iCloud会存储该文件的两个版本,并通知应用程序的文件演示者已发生冲突并需要解决。
你这样做的方式(允许同步时间,以不同方式改变文档)似乎不应该引起冲突。
答案 1 :(得分:0)
iCloud与版本控制系统基本相同 - 除了您只能访问冲突版本(发生冲突时)。
当设备从iCloud中提取ver_1
时,编辑,保存并查找服务器的版本(ver_2
或更新版本)与预期不同,将会创建冲突的版本。
初始同步后,您可以:
即将发生冲突。