问题描述
我正在尝试通过 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 (将#修改为@)