Как переместить текстовый файл, который я экспортировал из данных приложения, в место вне песочницы приложения, используя Swift / SwiftUI в iOS? - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть приложение, которое обычно хранит данные для пользователя. Все работает нормально, но я хочу дать пользователю возможность экспортировать данные в CSV и делать то же, что и sh.

Прямо сейчас у меня есть CSV, но они находятся в песочнице приложения и очень трудны и недружелюбны для пользователя. Как я могу переместить их за пределы изолированной программной среды приложения в место, с которым пользователь лучше знаком, например, в папку «Документы» в iCloud или в папку «Загрузки»?

Было бы замечательно решение SwiftUI, но Swift тоже работает!

У меня нет кода для отображения, так как я полностью в замешательстве.

1 Ответ

1 голос
/ 23 февраля 2020

Спасибо @ Paulw11 за руководство! Я был совершенно не уверен, как это сделать go, но это невероятно просто!

Создав файлы экспорта, я сохранил URL-адреса в массиве. Затем я передал их в структуру, созданную с помощью UIDocumentPickerViewController, реализующей UIViewControllerRepresentable (для SwiftUI).

Структура выглядит следующим образом:

import SwiftUI
import UIKit

struct DocumentPicker: UIViewControllerRepresentable {
    var URLs: [URL]
    func makeUIViewController(context: UIViewControllerRepresentableContext<DocumentPicker>) ->
        UIDocumentPickerViewController {

        let picker = UIDocumentPickerViewController(urls: URLs, in: .moveToService)
        return picker
}

    func updateUIViewController(_ uiViewController: UIDocumentPickerViewController, context: UIViewControllerRepresentableContext<DocumentPicker>){}
}

В итоге все ваши файлы готовы для перемещения в место, выбранное пользователем:

Modal window presented to allow user to choose a save-to location!

...