【发布时间】: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()
}
}
【问题讨论】: