- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 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/
我有一个 iOS 应用程序,它实现了 UIDocument 的自定义子类,它在数据包、归档对象和图像上封装了一个文件包装器。我最初将实现转换为 UIDocument 以获得 iCloud 支持,但它太
这个问题在这里已经有了答案: EXC_BAD_ACCESS using iCloud on multiple devices (1 个回答) 关闭 9 年前。 我有一个使用 iCloud 文档存储的
我正在制作一个文本编辑器应用程序,它将其每个文档存储为 NSFileWrapper 目录,文档文本和文档标题作为目录中的单独文件。我希望 loadFromContents: (id) contents
我在我的应用程序中使用 iCloud 来加载文本文件。加载文本文件时,当我调用 _UIDocument openWithCompletionHandler:^(BOOL success) 等时,iCl
我有一个自定义 UIDocument 子类并实现了 loadFromContents:和 contentsForType: . 为了检测文档在另一台设备上被更改,我添加了一个代理到 loadFromC
我是一名优秀的程序员,十分优秀!