1

ユーザーの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を初めて使用するので、アドバイスをいただければ幸いです。

4

0 に答える 0