Быстрое использование JSON из файла в песочнице приложения - PullRequest
1 голос
/ 14 июля 2020

У меня есть приложение Swift, в котором реализовано UIDocumentPicker для открытия .json файлов из iCloud Drive или локальной файловой системы пользователя. На данный момент, после выбора файла в контроллере представления DocumentPicker, URL-адрес файла печатается на консоли:

import Foundation
import SwiftUI

public struct DocumentPicker : UIViewControllerRepresentable {
    public func makeCoordinator() -> Coordinator {
        return DocumentPicker.Coordinator(parent1: self)
    }
    
    
    public func makeUIViewController(context: UIViewControllerRepresentableContext<DocumentPicker>) ->
        DocumentPicker.UIViewControllerType {
            let picker = UIDocumentPickerViewController(documentTypes: [String("public.json")], in: .import)
            picker.allowsMultipleSelection = false
            picker.delegate = context.coordinator
            return picker
    }
    
    public func updateUIViewController(_ uiViewController: UIDocumentPickerViewController, context:
        UIViewControllerRepresentableContext<DocumentPicker>) {
            // ...
    }
    
    public class Coordinator : NSObject,UIDocumentPickerDelegate {
        var parent : DocumentPicker
        
        init(parent1 : DocumentPicker) {
            parent = parent1
        }
        
        public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
            print(urls)
        }
    }
}

На данный момент массив (только с 1 URL-адресом .allowsMultipleSelection временно установлено значение false) выводится на консоль, например:

[file:///private/var/mobile/Containers/Data/Application/5A23352A-E0A3-4169-BBEF-CBA64A695A61/tmp/com.company.App-Inbox/someFile.json]

Я провел довольно много исследований и могу найти множество руководств о том, как анализировать данные с удаленных серверов HTTP / S, которые отправляют ответ application/json, а также множество сведений о том, как читать из файла JSON, связанного с приложением в Xcode, но ни один из них не работает для чтения и анализа данных из файла, открытого с помощью UIDocumentPicker. Скудна даже документация о том, как использовать файлы, выбранные в UIDocumentPicker после их «открытия». Я новичок в Swift, поэтому буду благодарен за любой совет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...