Как устранить ошибку при закрытии средства выбора документов
Настройка средства выбора документов, в котором пользователи могут выбирать файлы PDF из приложения «Файлы» и сохранять их в папке документов моего приложения для использования в приложении.
Получил средство выбора документов для открытия, выберите файл, но при закрытии я получаю следующую ошибку:
"[DocumentManager] Служба просмотра завершилась с ошибкой: Error Domain=_UIViewServiceErrorDomain Code=1 "(null)" UserInfo={Terminated=disconnect method}"
Код UIViewController:
import UIKit
import CoreData
import PDFKit
import MobileCoreServices
import UniformTypeIdentifiers
class AddDocumentViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIDocumentPickerDelegate {
@IBAction func chooseFile (_ sender: UIButton) {
fileTypeSelectionInput = fileTypeSelection.selectedSegmentIndex
var documentPicker: UIDocumentPickerViewController!
if #available(iOS 14, *) {
// iOS 14 & later
let supportedTypes: [UTType] = [UTType.pdf]
documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes)
} else {
// iOS 13 or older code
let supportedTypes: [String] = [kUTTypeImage as String]
documentPicker = UIDocumentPickerViewController(documentTypes: supportedTypes, in: .import)
}
documentPicker.delegate = self
documentPicker.allowsMultipleSelection = false
documentPicker.modalPresentationStyle = .formSheet
self.present(documentPicker, animated: true)
}
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
let fileURL = urls[0]
var fileName = urls[0].lastPathComponent
subjectFileName = fileName
let filePath = getDocumentsDirectory().appendingPathComponent(fileName)
print(fileName)
guard fileURL.startAccessingSecurityScopedResource() else {
// Handle denied access
return
}
defer { fileURL.stopAccessingSecurityScopedResource() }
do {
guard let document = PDFDocument(url: fileURL) else {
print("Error: could not create PDFDocument from url")
return
}
document.write(to: filePath)
print ("success")
} catch let error {
print("error: \(error)")
}
}
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}
}
Я искал эту ошибку, но я не могу ее исправить. Это связано с возможностями iCloud? Если да, то связано ли это с тем, что файлы файлов могут находиться в личном iCloud? Потому что я не планирую сохранять никакие документы в iCloud, только в папку документов приложения.
Если эта ошибка связана с iCloud, я следил за документацией Apple по этому вопросу: https://developer.apple.com/documentation/xcode/configuring-icloud-services .
И настройте, как показано ниже:
Я отмечаю, что возможности iCloud
Однако ошибка продолжает отображаться. Есть идеи? заранее спасибо