我们可以确定 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 文件包中发生了啥变化吗?的主要内容,如果未能解决你的问题,请参考以下文章