我们可以确定 iCloud 文件包中发生了啥变化吗?

Posted

技术标签:

【中文标题】我们可以确定 iCloud 文件包中发生了啥变化吗?【英文标题】:Can We Determine What's Changed in an iCloud file package?我们可以确定 iCloud 文件包中发生了什么变化吗? 【发布时间】:2012-10-22 21:38:33 【问题描述】:

我正在尝试使用支持 iCloud 的 UIDocument 和基于目录的 NSFileWrapper(又名文件包)来维护复杂的应用程序状态。在我的应用程序中,用户可以有许多不同的配置(有点像为每个潜在驾驶员提供座位设置的汽车)。

对于每个单独的状态,我将一个常规文件 NSFileWrapper 添加到整个文件包中。

我的 UIDocument 在云端的写入和读取工作正常。当文件包更改时,我也会收到通知。

问题是我无法从通知中找出子文件(即状态)的哪些添加或更改导致包更改。

我尝试在我的自定义 UIDocument 中覆盖presentedSubitemDidChangeAtURL,但这只会给我包的URL。我还尝试了文件包装器的 matchesContentsOfURL 方法,但这似乎不对,因为子文件包装器没有“真实”URL。

欢迎提出意见和建议。

【问题讨论】:

【参考方案1】:

我最终通过根据本地存储的 NSDate 检查每个常规文件的修改日期来解决这个问题。随着 UIDocument 的更新,我会检查上次运行流程循环后更改了哪些项目。需要注意避免再次处理本地更新的文件。

【讨论】:

以上是关于我们可以确定 iCloud 文件包中发生了啥变化吗?的主要内容,如果未能解决你的问题,请参考以下文章

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

x86 装配问题 - 任何人都可以确定下面发生了啥吗?

与 iCloud 同步文件 [关闭]

iCloud:禁用文件增量备份

有人可以解释一下这里发生了啥吗?存在普遍量化

C++11 中的“转换构造函数”发生了啥变化? [复制]