【问题标题】:Issues trying to preview big files with QLPreviewController尝试使用 QLPreviewController 预览大文件的问题
【发布时间】:2015-01-09 12:40:02
【问题描述】:

我在尝试在我的 iPad 应用中预览大文件时遇到问题。在应用程序中,我们使用 UIDocumentInteractionController。当我们尝试打开大文件(> 100 MB)时,UIDocumentInteractionController 只显示一个带有文件名称和大小的灰屏。

为了缩小问题,我们做了一个简单的应用程序,它只尝试使用 QLPreviewController 预览文件,我们发现了同样的问题。

问题似乎与内存使用有关。因为文件的最大尺寸,您可以预览有关 iPad 型号和后台应用数量的变化。

尝试使用 UIWebView 预览文件更糟糕:应用崩溃(内存警告)。

如何使用 QLPreviewController 预览大文件?我应该做一些特别的事情吗?我应该使用其他组件吗?哪一个?

【问题讨论】:

  • 你在处理什么类型的文件?
  • 检测到pdf文件存在问题。但该应用还管理 Microsoft Office 文件、图像等

标签: ios qlpreviewcontroller


【解决方案1】:

你可能无法做你想做的事 - UIDocumentInteractionController 似乎只能接受一个 URL,而不是一个打开的文件。

通常,您使用的技巧是使用“映射”文件 - 这是一个不需要完全读入内存的文件,但会根据需要使用虚拟内存,然后释放未使用的块。

如果您look at this answer,您可以看到如何使用 NSData 对象执行此操作。使用这样的对象,您可以初始化其他类型的数据对象 - 只是现在不确定如何处理 UIDocumentInteractionController。

【讨论】:

  • 你必须挖掘。我刚刚看到 Apple 支持“数据 URL” - 请参阅 developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…。如果是这样,您也许可以以某种方式使用 NSData 对象-实际上,我从未这样做过,但是您可以使它工作。无论如何,访问庞大的文本/数据文件的方法是使用操作系统的 mmap 功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
  • 2022-08-20
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多