Как устранить ошибку при закрытии средства выбора документов

Настройка средства выбора документов, в котором пользователи могут выбирать файлы 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

Однако ошибка продолжает отображаться. Есть идеи? заранее спасибо

0 ответов

Другие вопросы по тегам