当iCloud不可用时,允许用户编辑/查看现有文档

时间:2012-01-29 03:02:39

标签: iphone objective-c ios ios5 icloud

我一直在阅读Apple Docs,在线阅读几个教程,甚至在iCloud上观看CS193p讲座,但仍有一件事我不清楚:

假设您有一个将文档同步到iCloud的应用程序。如何在用户无法访问iCloud服务(飞行模式,网络不可用等等)时,如何允许用户仍然查看/编辑现有文档并创建新文档。

例如。 iOS5中的'提醒应用程序允许用户查看/编辑驻留在iCloud上的现有文档,即使您可能处于飞行模式。然后,在下次iCloud服务可用时传播更改。

这对我来说真的很奇怪。如果没有为无处不在的容器提供有效的元数据查询,如何填充提醒列表?即。由于iCloud不可用,调用URLForUbiquityContainerIdentifier:将返回nil。然后无法创建元数据查询,因为您无法为其提供查询的URL。因此,您无法填充文档列表供用户脱机查看和编辑。

任何有关如何完成此操作的帮助或见解都非常适用!

==================================== UPDATE ======= =============================

好的 - 我偶然发现了这个帖子:here

它基本上是在讨论使用iCloud时文件系统中文件的存储方式。根据我在iCloud上创建文件时收集的内容,它基本上保存在您第一次调用URLForUbiquityContainerIdentifier:时创建的特殊扩展本地存储容器中。这个特殊目录由iCloud deamon管理。除了存储在此特殊目录中之外,文档还会上载到云中以供其他应用程序使用。

现在 - 假设我的上述假设是正确的,问题是:如果iCloud突然不可用,您如何访问本地守护程序存储的文件?

1 个答案:

答案 0 :(得分:1)

这个问题的答案与另一个问题有关。您需要从iCloud请求要修改的文件,以便下载到离线模式下可用的本地UbiquityContainer。看到这个问题答案

Does URLForUbiquityContainerIdentifier: return nil when network access is not available?

总而言之,方法URLForUbiquityContainerIdentifier:在离线时不会返回nil,只是在iCloud确实无法使用时。