UIDocumentInteractionController – 读取文档时出错

我使用UIDocumentInteractionController在应用程序中预览文档。 但是,有时文档显示正常,其他时候交互控制器显示消息“读取文档时出错”。 我知道这不是文件的问题,因为相同的文件有时显示,有时不显示。

重新启动设备暂时解决这个问题 – 所以这似乎是一个内存问题,但奇怪的是我没有得到任何内存警告。 任何想法如何得到这个工作可靠吗?

笔记:

  1. 文件交互控制器预览被取消,控制器完成后释放,以确保先前的预览不会留在内存中
  2. 我有使用quicklook控制器相同的问题

经过多次testing后,出现此问题仅限于iPad 1.唯一的解决方法是重新启动。

既然您认为所涉及的文件是正确的,而且您认为您的代码是正确的,则您必须开始寻找其他因素。 想到的两个是:

  • 应用程序的状态。 有什么可以阻止预览工作的应用程序的当前状态? 你提到你没有得到任何内存警告,但是你看过预览成功和失败时应用程序使用了多less内存?

  • 文件的状态。 是否有可能由于某种原因文件无法打开,例如文件已被打开? 你能用其他方法打开文件吗?

在操作系统完成将其写入沙箱目录之前,您的应用程序可能正在尝试显示该文件。 这个操作的速度在一定程度上取决于后台的其他function(其他应用程序,电子邮件下载,iOS检查更新等)。 这也可以解释为什么重启设备似乎可以暂时解决问题。

要检查这一点,你可以检查这个错误,然后再试几秒钟后打开文档。

没有特定的代码或日志,很难说更多。