1

我正在尝试通过使用 NSFileManager 上的 iCloud 方法(无文档或文件协调器)将 iCloud 同步添加到我的 iOS/Mac 应用程序。该应用程序需要跨各种实例同步音频文件;创建、删除和元数据更改。它不是一个协作风格的应用程序,所以我不太担心冲突等。我有一些基本的工作,但遇到了一些我似乎无法找到明确答案的基本问题。

  1. 使用 iCloud 时,涉及到两个本地目录,文件来源的沙盒目录和无处不在的容器目录。一旦我为 ubiquity 启用文件,我应该开始直接与 ubiquity 容器中的文件进行交互,还是应该继续与沙盒文件交互并从 ubiquity 对应对象推送/拉取更改?感觉后者是最好的,这样如果他们关闭 iCloud,我就不会丢失所有用户文件(不确定在这种情况下普遍存在容器中的文件会发生什么)。

  2. 如果我维护两个文件,是否有一种首选方法可以将增量更改推入/拉出无处不在的容器?据我了解,如果用户更改给定设备上的文件,所有其他设备都会在其本地通用副本(如果已下载)中获得增量更改。每次通用文件更改时,我是否应该将文件全部复制到我的本地沙箱目录中,反之亦然?

4

1 回答 1

0

在修改文件时不断地将文件复制到普遍存在的容器对我来说似乎不是一个好策略,甚至可能导致 iCloud 认为文件的更改比实际更改的要多。您可以直接与 ubiquity 容器中的文件进行交互,就像使用“普通”文档沙箱中的文件一样使用它们。这是所有 iCloud 文档中规定的模型,尽管它可能很稀疏。

您是对的,您需要能够处理用户从 iCloud 迁移出去的情况。有一些方法可以将文件移出 ubiquity 容器,并且一些较新的 iOS 6 API 可以更容易地检测用户是否启用了 iCloud,尽管这仍然是我们可以使用更多 API 的领域。

于 2013-01-19T18:49:47.760 回答