ユーザーのiCloudドライブまたはローカルファイルシステムからファイルUIDocumentPicker
を開くために実装されたSwiftアプリケーションがあります。.json
現在、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)
}
}
}
現在、配列 (.allowsMultipleSelection
一時的に false に設定されているため、1 つの URL のみ) がコンソールに出力されます。次に例を示します。
[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を初めて使用するので、アドバイスをいただければ幸いです。