【问题标题】:Couldn't issue file extension for URL无法为 URL 发出文件扩展名
【发布时间】:2018-09-30 09:41:12
【问题描述】:

我被困住了,不知道该怎么办。我希望能够使用 QuickLook 在我的应用程序中显示 PDF。我已将我的 PDF 文件导入到我的项目中,并正在使用下面的代码来显示它。

    func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
    //let bundle = Bundle.main
    let resourcePath = Bundle.main.resourceURL!.appendingPathComponent("Manuals/\(nodeName).pdf").path
    //let path = resourcePath + bundle.path(forResource: nodeName, ofType: "pdf")!
    let url = URL(fileURLWithPath: resourcePath)
    return url as QLPreviewItem
}

生成的网址是

"file:///var/containers/Bundle/Application/3923DC1F-386E-4038-A8B1-A855483F4C06/Application%20v1.app/Manuals/CYB.pdf"   

我得到的错误是

Couldn't issue file extension for url: file:///var/containers/Bundle/Application/3923DC1F-386E-4038-A8B1-A855483F4C06/Application%20v1.app/Manuals/CYB.pdf #PreviewItem

在显示屏上我只是得到一个灰色的屏幕,上面有文件的名称和下面的 PDF 文档。有谁知道我做错了什么。我已经厌倦了用谷歌搜索答案,但要么解决方案对我不起作用,要么答案已经过时。

任何帮助都会很棒。如果您可能需要更多信息,请告诉我,我可以提供。

谢谢

【问题讨论】:

  • 尝试将.pdf 复制到Documents 文件夹中,因为这是从其他文件夹尝试时的已知问题。
  • 嘿。我真的很抱歉,但是如何将其复制到文档文件夹中。目前,我的 PDF(我有多个)仅位于另一个名为 Manuals 的文件夹中。我什至不知道的文件夹在哪里?

标签: ios swift xcode pdf quicklook


【解决方案1】:

感谢所有为此问题提供意见的人。我终于修好了。事实证明,这与我发布的代码无关,而是因为我的 iPad 没有运行 iOS 11.3。由于某种原因,此问题发生在 11.2.x 上,但在 11.3 中得到修复。我不知道为什么我没有早点更新,但它终于工作了。希望其他遇到此问题的人会发现这很有用,并且不会浪费一整天的时间来弄清楚它为什么不起作用。

再次感谢。

【讨论】:

    【解决方案2】:

    要访问 main Bundle 文件夹中的文件,请将名为 Manuals 的文件夹拖到项目 xcode 并选择创建引用文件夹

    //

    然后使用

    访问资源
    let fileUrl = Bundle.main.url(forResource:\(nodeName) ,withExtension:"pdf",subdirectory: "Manuals")  
    

    【讨论】:

    • 嗨。感谢您的回答,但我得到了相同的结果。带有文件标题和 PDF 文档的灰色屏幕。而且我仍然得到“无法为 URL 发出文件扩展名”。不过,您的代码删除了我的两行代码,非常感谢。
    【解决方案3】:

    这是 iOS 11.2 中的已知问题。可能的解决方案是在显示文件之前将文件复制到文档目录中的临时文件。 https://forums.developer.apple.com/thread/91835

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2012-05-12
      • 2022-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多