iCloud-CoreData 解决冲突

Posted

技术标签:

【中文标题】iCloud-CoreData 解决冲突【英文标题】:iCloud-CoreData resolve conflicts 【发布时间】:2015-03-22 15:22:51 【问题描述】:

我正在使用适用于 iPad 的 Ulysses 应用程序。这个应用程序使用 iCloud 作为同步系统。如果发生冲突,应用程序会显示一个包含所涉及设备描述的弹出窗口。

特别是:

设备名称(例如 Matteo 的 Macbook Pro) 时间戳(例如 2015 年 3 月 22 日 9:34)

选择正确的便笺版本是不可能完成同步的。

我已经设置了 icloud 堆栈来处理同步,它工作得很好,但我不知道在发生冲突时如何检索那种信息。

有什么建议吗?

【问题讨论】:

欢迎来到***。你的问题太笼统了。您需要展示最少的研究,然后在遇到困难时询问社区。​​span> 我已经设置了 icloud 堆栈来处理同步,它工作得很好,但我不知道如何在发生冲突的情况下检索那种信息(设备名称、时间戳)。谢谢 好的,你应该在你的问题中提到这一点。您是否尝试过制造冲突并看看会发生什么? 它自动管理与默认策略的冲突。它调用与事件“NSPersistentStoreDidImportUbiquitousContentChangesNotification”关联的回调。在回调中,作为参数,我有一个 NSNotification* 但它没有那个信息... PS:感谢您对我的问题提出的建议 :) 【参考方案1】:

收听NSPersistentStoreDidImportUbiquitousContentChangesNotification 而不是仅仅调用mergeChangesFromContextDidSaveNotification:,首先检查两个版本。

这可以通过检索通知的userInfo 字典来完成,该字典应包含NSUpdatedObjectsKey 下更改对象的NSManagedObjectIDs。

【讨论】:

是的,是的。我得到的 userInfo 的实际打印描述: deleted = "(\n)";插入 = "(\n)";更新 = "(\n 0xd00000002004007c \n)";但是我如何才能检索有关冲突中涉及的设备的信息和两个设备的更改时间戳?

以上是关于iCloud-CoreData 解决冲突的主要内容,如果未能解决你的问题,请参考以下文章

如何解决包冲突问题

Maven中jar版本冲突问题的解决

解决jar包冲突问题

maven引用冲突解决

maven引用冲突解决

asp.net core 3.0 web api request.body和[frombody]冲突[关闭]