【发布时间】:2013-09-29 01:34:52
【问题描述】:
我正在为 UIManagedDocument 开发一个轻量级包装器,它管理一个人的 iCloud 帐户中是否存在多个文档。见:APManagedDocument
我在很大程度上依赖于 iOS 7 中后备存储的使用,并且尽可能少地关心 iCloud 的当前状态。因此,根据我对 WWDC 2013 Video - Session 207 What’s New in Core Data and iCloud的理解,让核心数据在后备存储方面做最好的事情@
首先简要概述一下我的经理的工作方式:
我在本地沙箱中创建了所有UIManagedDocuments,并设置了适当的持久性存储选项以启用 iCloud 同步。我从不从沙盒中移动 UIManagedDocument 包。
- 当我想知道云中存在哪些文档时,我会执行元数据查询。
- 当我想打开其中一个文档时,我首先检查它是否存在于本地沙箱中,如果不存在则在本地沙箱中创建它。
(这就要求应用需要等待
Using local storage: 0消息对应的通知。) - 通过此设置,我永远不需要知道 iCloud 是否已启用或已登录。我只需在本地工作,让核心数据通过 iCloud 完成它的工作。
到目前为止,一切都很好,但我遇到了用户在登录 iCloud 之前创建新文档的场景,我遇到了以下问题:
- 我无法执行元数据查询,因为没有 iCloud 可供查询。
- 由于 1,我不得不回退到执行智能本地扫描,以查找路径中包含“local/store/persistentStore”的包并将其列为有效文档。
- 后来当用户登录时,我的理解是核心数据会将我的本地存储数据移动到云中,但我没有看到。相反,我看到的是为 iCloud 帐户创建了一个新的持久存储,但没有数据。
我最大的问题是,当涉及到本地后备商店时,正确的方法是什么?我的假设哪里错了?
这是我发布 iOS 7 更新所需的最后一部分。任何和所有反馈都将不胜感激,并将反映在我的 github 项目中,以便其他人可以从我的错误中吸取教训。
我在 Apple 开发者论坛中有此问题的副本。我会用我从那里得到的任何发现来更新这个线程。我认为这个问题很重要,并且随着 iOS 7 的发布仍未得到解决。后备存储是 iCloud 技术的巨大进步,但本地存储部分仍然有点不确定。
【问题讨论】:
-
我已向 Apple 开具支持票,希望能解决此问题。
-
@dtrotzr .... 支持票有任何更新吗?我也有同样的问题....
-
@Max 在下面看到我的答案。 Apple 终于回复了我,但我对这个答案并不兴奋我觉得工程师没有花时间完全理解我的答案,或者我在后备商店做的事情都错了。
标签: core-data ios7 icloud uimanageddocument