Альтернативный диалог сохранения UIActivityViewController для Mac Catalyst или решение для UIDocumentPickerViewController, выдающего код ошибки 260 - PullRequest
1 голос
/ 25 октября 2019

Я ищу альтернативное меню экспорта, отличное от UIActivityViewController для приложения Mac Catalyst. Хотя это работает, пользователь не может выбирать, где он хочет сохранить файл (файл представляет собой файл JSON всех элементов списка), и я хотел бы, чтобы пользователь мог выбрать каталог, в котором он хочет сохранить JSON. к. Я пробовал следующий код, но он выдает ошибку «Ошибка Domain = NSCocoaErrorDomain Code = 260» Файл «name.json» не может быть открыт, потому что такого файла нет »при попытке сохранить файл.

Код:

let fileManager = FileManager.default

do {
    let fileURL2 = fileManager.temporaryDirectory.appendingPathComponent("\(detailedList.lname!).json")

    // Write the data out into the file
    try jsonData.write(to: fileURL2)

    // Present the save controller. We've set it to `exportToService` in order
    // to export the data -- OLD COMMENT
    let controller = UIDocumentPickerViewController(url: fileURL2, in: UIDocumentPickerMode.exportToService)
    present(controller, animated: true) {
        // Once we're done, delete the temporary file
        try? fileManager.removeItem(at: fileURL2)
    }
} catch {
    print("error creating file")
}

Я пытался найти другие способы поиска Google, но не могу найти ничего, что будет работать на Mac Catalyst. Я знаю, что вы можете сделать это, потому что я видел другие приложения и примеры, но ничего у меня не работает. Итак, что было бы возможным альтернативным способом сделать это или решение этого кода?

1 Ответ

1 голос
/ 25 октября 2019

Проблема в том, что вы удаляете файл, который хотите сохранить, прежде чем у пользователя появится возможность выбрать, где он хочет его сохранить.

Обработчик завершения, в котором вы вызываете try? fileManager.removeItem(at: fileURL2), вызывается сразу же. в качестве средства выбора документа.

Надлежащим решением является удаление файла в методах UIDocumentPickerDelegate, а не при представлении средства выбора.

...