从 URL swiftui 解压缩 JSON 文件

问题描述

我正在尝试通过 zlib 协议从 URL 解压缩文件。我写了一个函数(loadData),它应该首先获取压缩的数据,然后解压,然后解码(JSON 解码器),最后把它放到变量“spotdata”中。 但是,我的模拟器或预览中没有显示任何内容。有谁知道我做错了什么?提前致谢!

struct ContentView: View {   

    @State var spotData = WindAppSpot()
    
    var body: some View {
        ZStack {
            vstack {
                Text("Hello World")
                Text("\(spotData.spot)")
            }
        }.onAppear(perform: loadData)
    }
}

extension ContentView {
    
    func loadData() {
        
        guard let url = URL(string: "https://github.com/Bene2907/Bene2907.github.io/raw/main/outfile.dat") else {
            return
        }
        let request = URLRequest(url: url)
        URLSession.shared.dataTask(with: request) { data,response,error in
            
            if let data = data {
                do {
                    let decompressedData = try (data as NSData).decompressed(using: .zlib)
                    if let response_obj = try? JSONDecoder().decode(WindAppSpot.self,from: decompressedData as Data) {
                        
                        dispatchQueue.main.async {
                            self.spotData = response_obj
                        }
                    }
                } catch {
                    print(error.localizedDescription)
                }
            }
        }.resume()
    }
}

结构看起来像这样:

struct WindAppSpot: Decodable {
    var spot: String
    //... 
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)