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
下更改对象的NSManagedObjectID
s。
【讨论】:
是的,是的。我得到的 userInfo 的实际打印描述: deleted = "(\n)";插入 = "(\n)";更新 = "(\n 0xd00000002004007c以上是关于iCloud-CoreData 解决冲突的主要内容,如果未能解决你的问题,请参考以下文章