iOS 7:UIDocument / UIManagedDocument 和 iCloud 发生了啥?

Posted

技术标签:

【中文标题】iOS 7:UIDocument / UIManagedDocument 和 iCloud 发生了啥?【英文标题】:iOS 7: What happened to UIDocument / UIManagedDocument and iCloud?iOS 7:UIDocument / UIManagedDocument 和 iCloud 发生了什么? 【发布时间】:2013-09-18 12:04:41 【问题描述】:

我正在查看有关 iCloud 和 Core Data 的 WWDC 2013 会议。我真的很希望看到UIManagedDocumentUIDocument 的任何新视频。您可能还记得,这些类理论上提供了一种出色而简单的方法,可以在本地和 iCloud 中使用 (UIManagedDocument) 或不使用 CoreData (UIDocument) 保存数据。但是这些概念已经或仍然存在一些非常烦人的基于系统的错误,尤其是在设备之间同步数据时,see for example here。

但是,没有视频涵盖 UIManagedDocument/UIDocument 和 iCloud 主题。视频“Core Data 和 iCloud 有什么新变化?”只介绍了使用 Core Data 持久存储的经典方法,该方法由新 API 扩展以自动覆盖回退存储和同步。有人知道UIManagedDocument/UIDocument 发生了什么吗?他们是否放弃并认为经典方法是让应用与 Core Data 和 iCloud 同步的更好方法?

【问题讨论】:

3/4 小时后再次询问,因为它在技术上仍处于 NDA 之下。 我相信添加到 ios 7 的 iCloud 实现中的新后备存储可以解决您的示例问题。请参阅“Core Data 和 iCloud 的新功能”WWDC 2013 Session 207。 你找到这个疑问的答案了吗?我真的很想知道使用UIManagedDocument 是否是个好主意。 【参考方案1】:

我的理解是UIManagedDocument 是核心数据的轻量级包装器,用于抽象出一些常见的核心数据设置和交互。这也是一种打包其他“文档”元素的方法,但管理这些项目的 iCloud 同步留给开发人员作为练习。

如果你使用的是 iCloud,UIManagedDocument 不支持文档目录中的“附加内容”(参见 additionalContentForURL:error: 及相关方法)

引用自:UIManagedDocument

另请参阅:additionalContentForURL:error:

几乎所有适用于核心数据的东西都适用于UIManagedDocument,它在后台使用核心数据。例如,我在 APManagedDocument 项目中使用了新的后备商店。

您希望在 iOS 7 中看到哪些内容?

【讨论】:

我不同意你的意见。 UIManagedDocumentUIDocument 的子类,并在其超类的扩展中与 Core Data 集成。 UIDocument 本身(因此是 UIManagedDocument)是一个抽象类,用于管理与文档相关的操作,例如协调读写、同步、解决冲突等。因此 iCloud 同步是内置的,而不是针对开发人员的练习(参见课程这些的参考)。我希望看到这些类的进一步发展,以及使用 iCloud 协调读写背后的同步过程所需的错误修复。 今年 WWDC 明确表示,此时 UIManagedDocument 仅同步是 UIManagedDocument 的核心数据部分。我同意你的看法,如果 Apple 进一步学习这些课程会很好,但我认为今年他们专注于稳定核心数据同步。我觉得UIManagedDocument 看到核心数据同步本身刚刚开始形成可能有点为时过早。希望明年会更好。 P.S.当我说离开作为开发人员的练习时,我的意思是 UIManagedDocument 今天的立场。 您能否列出明确表明UIManagedDocument's Core Data 的同步已稳定的会话?其实这是个好消息…… UIManagedDocument 没有特别提及,暗示UIManagedDocument 在后台使用核心数据,核心数据同步是过去一年核心数据团队的重点。

以上是关于iOS 7:UIDocument / UIManagedDocument 和 iCloud 发生了啥?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 5 中关于 UIDocument 的说明

IOS 5 UIDocument 子类向后兼容吗?

在 NSDocument 和 UIDocument 之间共享代码

打开 UIDocument 时如何显示错误消息?

UIDocument 相关 EXC_BAD_ACCESS

iOS 查询更新不起作用