无法使用 Swift 3 在 webView 中打印 PDF,需要带有初始值设定项的 baseURL

Can't print PDF in webView using Swift 3, wants baseURL with initializers

我使用 Xcode7Swift2 中构建的 iOS 项目有一个功能,用户可以打印存储在应用程序内存中的 PDF,该 PDF 在 webView 中显示。效果很好,可以打印到附近的 wifi 打印机。我使用迁移工具将其转换为 Swift3,但现在需要一个具有初始值设定项的 baseURL 时出现问题:

    if buttonPressed == "Print" {

        // Create a coded WebView only; not visible
        let printWebView: UIWebView = UIWebView()

        // Load the converted PDF Data to the WebView
        printWebView.load(pdfData as Data, mimeType: "application/pdf", textEncodingName: "", baseURL: URL())

        ...

    }

在我开始使用 Swift3 之前工作正常,我该如何解决这个问题?,以前它与 NSURL() 一起工作。 PDF 保存在应用程序内存中,他们可以查看然后打印。 PDF 本身可以充当 baseURL 吗?我在网上看了看,找不到任何有用的东西。谢谢你的帮助。

您可以像这样将 absoluteURL 属性 与空 NSURL() 一起使用。

if let url = NSURL().absoluteURL {
    printWebView.load(pdfData as Data, mimeType: "application/pdf", textEncodingName: "", baseURL: url)
}