我正在尝试使用支持 iCloud 的 UIDocument 和基于目录的 NSFileWrapper(又名文件包)来维护复杂的应用程序状态。在我的应用程序中,用户可以有许多不同的配置(有点像为每个潜在驾驶员提供座位设置的汽车)。
对于每个单独的状态,我将一个常规文件 NSFileWrapper 添加到整个文件包中。
将我的 UIDocument 写入/读取云的工作正常。当文件包更改时,我也会收到通知。
问题是我无法从通知中找出子文件(即状态)的哪些添加或更改导致包更改。
我已经尝试在我的自定义 UIDocument 中覆盖presentedSubitemDidChangeAtURL,但这只会给我包的URL。我还尝试了文件包装器的 matchesContentsOfURL 方法,但这似乎不正确,因为子文件包装器没有“真实”URL。
欢迎提出意见和建议。