QLPreviewController:quicklookd无法加载

时间:2013-12-05 21:48:28

标签: ios quicklook

我有一些使用QLPreviewController显示简单PDF的简单代码。它在模拟器和一个非常简单的应用程序中运行良好。

在应用程序中我实际上希望它可以工作,它在设备上失败了。设备显示预览视图,但代替PDF,它只显示文本“simple.pdf,可移植文档格式(PDF)”和文件大小(本例中为“301KB”)。

有趣的是,日志发出“无法加载quicklookd并显示错误:操作无法完成。(Cocoa error 4097。)”

我试过了:

  • 一些PDF,一个简单的文本和一个IRS的W4 PDF。相同的结果。
  • UIDocumentInteractionController。相同的结果。

排除了:

  • 我在构建阶段与QuickLook.framework进行链接。
  • [QLPreviewController canPreviewItem:]返回YES。

我认为heirarchy不是非常复杂;面向SWRevealViewController的UINavigationController。当PDF为Quicklook时,无论我在导航层次结构中的浅度或深度。

我没有想法,希望有人认出错误。

编辑:app在iOS 6设备上正常运行。在6.1,7.0和7.1的模拟器中工作。在7.0设备上失败,唉!

2 个答案:

答案 0 :(得分:2)

这是64位设备上的问题。您可以在64位iOS 7模拟器中复制它。这里报告了与其他框架相同的错误:

Cannot show modal ViewController in iOS7

将构建设置中的体系结构设置更新为'标准体系结构(包括64位)(armv7,armv7s,arm64)'又名$(ARCHS_STANDARD_INCLUDING_64_BIT)将解决该问题。当然,如果您拥有所有第三方库的兼容版本。

出于原因,只有苹果工程师才知道,删除不同的外观委托更改也至少提供了通过iOS 7.0.4的解决方法。在我的情况下,导致问题的外观变化是

[[UITableView外观] setSeparatorInset:UIEdgeInsetsZero];

答案 1 :(得分:1)

最后将它缩小到这一行,在应用程序启动期间提前调用。

奇怪的是,将这一行单独添加到一个简单的应用程序不会导致失败,所以还有其他一些我无法找到的额外交互。

可悲的是没有正确的解释,但至少我现在可以继续前进了。希望这个答案可以节省一些时间!

// We don't want Back button text, move it off-screen
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60.f) forBarMetrics:UIBarMetricsDefault];