我有一个 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 非常陌生,所以任何建议都将不胜感激!