将传统的核心数据堆栈与iCloud集成:冲突管理

时间:2014-10-07 14:52:02

标签: ios core-data icloud

我正在开发一个iOS应用程序,而且我在Core Data中遇到了冲突管理的问题。到目前为止,我已经构建了一个核心数据堆栈,其实体与iCloud同步,没有太大麻烦。

但冲突管理仍然是一个巨大的问题。

  1. Apple的UIManagedDocument公开了一个公共界面,该界面旨在使开发人员能够轻松处理文档版本冲突。在我的应用程序中,文档(我的核心数据堆栈中的NSManagedObjects)需要与其他NSManagedObjects建立关系 - 据我所知,这意味着我需要使用传统的Core Data堆栈,而不是UIManagedDocument。这是真的吗?

  2. 据我所知,在正常情况下处理冲突管理的唯一方法是"核心数据堆栈是子类NSMergePolicy。这是对的吗?

  3. 如果(1)和(2)的答案为YES,那么我需要继承NSMergePolicy以便:

  4. 如果用户在iCloud不可用时编辑设备X和设备Y上的文档A(例如,因为设备都处于飞行模式),则NSMergePolicy子类需要将这两个版本的文档A保存到iCloud商店。这就是Apple的Notes应用程序的工作原理。

    不幸的是,我发现几乎没有关于如何为这样的任务正确地继承NSMergePolicy的信息。 Apple的文档在这个主题上几乎没什么可说的。你能解释一下如何处理这项任务,或者指导我进入一个深入的教程/示例项目吗?

    1. 是否有比NSMergePolicy子类更好/更简单/更简单的方法?
    2. 我非常感谢你的帮助。在我确定正确的方法之前,我会犹豫不决。

      谢谢, 罗伯特

0 个答案:

没有答案