1

我有一个 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]

我做了很多研究,我可以找到大量关于如何解析来自发送application/json响应的远程 HTTP/S 服务器的数据的教程,以及如何从 Xcode 中与应用程序捆绑的 JSON 文件中读取的大量教程,但这些都不适用于从使用 UIDocumentPicker 打开的文件中读取和解析数据。在“打开”它们之后如何使用在 UIDocumentPicker 中选择的文件的文档甚至很少。我对 Swift 非常陌生,所以任何建议都将不胜感激!

4

0 回答 0