QuickLook无法加载某些文件

时间:2017-04-25 16:32:07

标签: ios quicklook

背景

我试图通过QuickLook打开一些文件。我有一个.docm和.pdf,我能够重现这个错误。起初我认为这是由于宏启用了Microsoft Office文档,但是由于我得到100 + MB pdf的错误,我想知道QuickLook是否有问题。

错误

[default] View service did terminate with error: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted} #Remote

从QuickLook反复抛出此错误。从我所看到的这个错误似乎只有在使用模拟器并尝试发送电子邮件时才常见。我使用的是iPhone 7+,每次都可以重现。

我想知道我使用的文件是否与它们有问题。

测试

我尝试了以下具有不同结果的文件

  • 100MB .pdf - 成功
  • 100MB .doc - 成功
  • 17MB .docm - 失败
  • 85MB .docx - 成功
  • 100MB .pdf - 失败(与第一个不同,这个加载文件但重复闪烁直到它进入“错误”QuickLook屏幕)

问题

QuickLook上是否有任何大小限制或超时可能导致此奇怪错误?

1 个答案:

答案 0 :(得分:0)

以防万一,如果它发生在iOS12中,请在呈现这样的quicklook控制器时尝试添加延迟-

Objective-C

 QLPreviewController *previewController = [[QLPreviewController alloc]init];
 previewController.delegate = self;
 previewController.dataSource = self;
 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)),  dispatch_get_main_queue(), ^{
     [self presentViewController:previewController animated:YES completion:nil];
 });                                                                      

快速

let previewController = QLPreviewController()
        previewController.dataSource = self
        previewController.delegate = self
        let delay = DispatchTime.now() + 0.3
        DispatchQueue.main.asyncAfter(deadline: delay, execute: {
            self.present(previewController, animated: true)
        })

这对我来说是固定的。