【问题标题】:how can I init struct: Codable without default value我怎样才能初始化结构:没有默认值的可编码
【发布时间】:2021-04-14 11:48:11
【问题描述】:

我想从 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()
    }
}

【问题讨论】:

    标签: swift codable


    【解决方案1】:

    改变

    @Published var data:Search?
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多