【问题标题】:UIActivityViewController saves 2 PDF copies to files appUIActivityViewController 将 2 个 PDF 副本保存到文件应用程序
【发布时间】:2020-06-17 13:57:50
【问题描述】:

我正在尝试将 PDF 文件简单地保存到 iOS 设备上的“文件”应用程序中。

当用户点击“保存到文件”,然后点击“保存”操作时,我得到了保存到设备上的 2 个 PDF 副本。

这是一个错误吗?我是不是做错了什么?

下面是我的代码

@objc func downloadPdfTapped() {
        if let fileURL = createTempPdfFile() {
            let activityVC = UIActivityViewController(activityItems: [fileURL], applicationActivities: nil)
            activityVC.excludedActivityTypes = [.assignToContact, .markupAsPDF]
            present(activityVC, animated: true, completion: nil)
        }
        else {
            print("\n\nERROR CREATING PDF\n\n")
        }
    }


    private func createTempPdfFile() -> URL? {
        let tempFile             = "temp_statement.pdf"
        guard let tempFolder     = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return nil }
        self.tempFileURL         = tempFolder.appendingPathComponent(tempFile)
        guard let currentFileURL = self.tempFileURL else { return nil }

        do {
            try pdfData.write(to: currentFileURL)
            return currentFileURL
        }
        catch {
            print(error.localizedDescription)
            return nil
        }
    }

谢谢

【问题讨论】:

    标签: ios swift uiactivityviewcontroller


    【解决方案1】:

    好的,想通了!

    我正在将我的临时文件写入:

    guard let tempFolder = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return nil }

    但是,我真的应该把它写在临时文件夹中,所以这样的东西起作用了......

    let tempFolder = FileManager.default.temporaryDirectory

    这让我得到了真正的临时目录。

    然后,当你完成后,别忘了删除你的临时文件!

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多