swift - 我怎样才能初始化结构:没有默认值的可编码
问题描述
我想从 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?
推荐阅读
- .net - 如何将 ASP.NET Core 5.0 网站的日志输出发送到前端
- sql - 是否有 SQL 查询来防止列中出现两个相同的名称?并查询不要留空的列?
- kubernetes - 实例化和关闭 Kubeflow pod
- google-sheets - 将单个单元格公式转换为整列公式的问题
- service - 如何在微服务架构中正确管理 .env 文件
- vim - vim 搜索替换应该在以下搜索中使用替换文本
- python - 制作一个需要双击编辑的QSpinBox
- python - 为什么我的位移操作数投射在不受支持的“str”类型上?
- flask - SQLAlchemy 过滤所有关系
- javascript - 如何共享来自不同 React Hooks 的解构变量?