【问题标题】:How do I properly manage iCloud files via NSFileManager?如何通过 NSFileManager 正确管理 iCloud 文件?
【发布时间】:2013-01-01 17:48:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios icloud nsfilemanager


    【解决方案1】:

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

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

    【讨论】:

    • 我正在做一些编码并且已经暂存了一个文件,然后将其复制到“最终”位置,所以这有点使我的工作流程复杂化,但它似乎是最有意义的,谢谢!跨度>
    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    相关资源
    最近更新 更多