gpt4 book ai didi

iphone - 为什么在我的 UIDocument 自动保存后调用 loadFromContents?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:18 25 4
gpt4 key购买 nike

我有一个 iOS 应用程序,它实现了 UIDocument 的自定义子类,它在数据包、归档对象和图像上封装了一个文件包装器。我最初将实现转换为 UIDocument 以获得 iCloud 支持,但它太不可靠了,所以我退出了 iCloud 部分,只使用带有本地存储的 UIDocument。

当用户修改数据时,我将 updateChangeCount: 发送到 UIDocument 实例,它会定期在后台自动保存。我只在应用程序进入后台时关闭文档。我发现在调用 UIDocument 的 contentsForType 方法的自动保存之后,还会调用 loadFromContents。我在逻辑上不明白这一点,这也导致我的界面出现问题。

我认为 loadFromContents 只会在打开文档或在另一台设备上修改 iCloud 文档时调用。因此,当我的文档在后台自动保存时,它也会重新加载,这会导致 UI 更新,这有时会丢弃尚未保存的正在进行的新工作。我可以忽略 UI 中的重新加载,但我的模型数据与 UI 对象不同时仍然会遇到一些问题。

那么我做错了什么导致了这种行为?我希望保存不启动 loadFromContents 或了解如何处理该行为。

谢谢!

最佳答案

我发现这种行为不知何故是由于一些@synchronized 调用,我包装了 contentsForType 和 writeContents: 初始实现的方法,以防止在关闭具有未保存更改的文档时发生崩溃。我收到了两个几乎同时的 contentsForType 调用,这导致了错误的访问错误。

我通过在关闭文档之前设置 updateChangeCount:UIDocumentChangeCleared 找到了一种更简洁的方法来防止这些崩溃。

关于iphone - 为什么在我的 UIDocument 自动保存后调用 loadFromContents?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com