3

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

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

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

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

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

欢迎提出意见和建议。

4

1 回答 1

0

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

于 2012-11-05T18:00:21.120 回答