我有一个 iOS 应用程序,它实现了 UIDocument 的自定义子类,该子类将文件包装器封装在数据包、存档对象和图像上。我最初将实现转换为 UIDocument 以获得 iCloud 支持,但它太不可靠了,所以我拔出了 iCloud 部分,只使用带有本地存储的 UIDocument。
当用户修改数据时,我将 updateChangeCount: 发送到 UIDocument 实例,它会定期在后台自动保存。我只在应用程序进入后台时关闭文档。我发现在调用 UIDocument 的 contentsForType 方法的自动保存之后,还会调用 loadFromContents。我在逻辑上不理解这一点,它也导致我的界面出现问题。
我认为 loadFromContents 只有在打开文档或在另一台设备上修改了 iCloud 文档时才会被调用。因此,当我的文档在后台自动保存时,它也会重新加载,这会导致 UI 更新,这有时会丢弃尚未保存的正在进行的新工作。我可以忽略 UI 中的重新加载,但我的模型数据与 UI 对象不同仍然存在一些问题。
那么我做错了什么导致这种行为?我希望保存而不是启动 loadFromContents 或了解如何处理该行为。
谢谢!