UIActivityViewController将2个PDF副本保存到文件应用程序中

问题描述 投票:0回答:1

我正在尝试将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个回答
0
投票

确定,知道了!

我正在将临时文件写入:

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

但是,我确实应该将它写在temp文件夹中,所以类似的工作正常...

let tempFolder = FileManager.default.temporaryDirectory

这使我得到real临时目录。

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

© www.soinside.com 2019 - 2024. All rights reserved.