QLPreviewController:quicklookd无法加载

我有一些简单的代码显示一个简单的PDF,使用QLPreviewController。 它在模拟器,并在一个非常简单的应用程序的伟大工程。

在应用程序,我真的希望它的工作,它在设备上失败。 该设备显示预览视图,但它只是显示文本“simple.pdf,便携式文档格式(PDF)”和文件大小(在这种情况下为“301KB”),而不是PDF。

有趣的是,日志发出“无法加载quicklookd错误:操作无法完成。(cocoa错误4097.)”

我试过了:

  • 几个PDF文件,一个简单的文本和一个IRS的W4 PDF。 相同的结果。
  • 改为使用UIDocumentInteractionController。 相同的结果。

排除:

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

我的意见不是非常复杂, 面向SWRevealViewController的UINavigationController。 当PDF是Quicklook'd时,无论我在导航层次结构中有多浅或很深,都无关紧要。

我没有想法,希望有人认识到这个错误。

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

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

无法在iOS7中显示模式ViewController

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

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

[[UITableView外观] setSeparatorInset:UIEdgeInsetsZero];

最后把它缩小到这一行,这在应用程序启动时被称为早期。

奇怪的是,单独添加这条线到一个简单的应用程序不会导致失败,所以还有一些其他的互动发生,我找不到。

可悲的是不是一个正确的解释,但至less我现在可以继续前进。 希望这个答案能够帮助别人节省一些时间!

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