繁体   English   中英

我怎样才能初始化结构:没有默认值的可编码

[英]how can I init struct: Codable without default value

我想从 API 获取 Json,并使用Codable协议,但是当我初始化发布的 var 时,出现错误。

struct Search: Codable {
    let result: [String]
}

class SearchViewModel: ObservableObject {
    @Published var data = Search()

    
    func loadData(search: String) {
        var urlComps = URLComponents(string: getUrl)
        let queryItems = [URLQueryItem(name: "result", value: search)]
        urlComps!.queryItems = queryItems
        
        let url = urlComps!.url!.absoluteString
        guard let Url = URL(string: url) else { return }
        
        URLSession.shared.dataTask(with: Url) { (data, res, err) in
            do {
                if let data = data {
                    let decoder = JSONDecoder()
                    let result = try decoder.decode(Search.self, from: data)
                    
                    DispatchQueue.main.async {
                        self.data = result
                    }
                    
                } else {
                    print("there's no Data😭")
                }
            } catch (let error) {
                print("Error!")
                print(error.localizedDescription)
            }
        }.resume()
    }
}

改变

@Published var data:Search?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM