为什么我出错:无法将类型为“ Clause”的值分配为类型为“ Clause.Type”
Clause.Swift文件
struct Clause: Codable {
var Id: Int
var ClauseNo: String
}
MainViewController.swift文件
var clause = Clause.self
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL(string: urlString) {
if let data = try? Data(contentsOf: url) {
parse(json: data)
}
}
}
func parse(json: Data) {
let decoder = JSONDecoder()
if let jsonClause = try? decoder.decode(Clause.self, from: json) {
clause = jsonClause //<===== Error on this line
print(jsonClause)
}
}
答案 0 :(得分:1)
替换
listener 1883
protocol mqtt
listener 8080
protocol websockets
与任一
var clause = Clause.self
或
var clause:Clause?
这里有var clause:Clause!
Clause.self
并不意味着您需要那种类型的var,解码器的返回是decoder.decode(Clause.self, from: json)
的实例
不使用
Clause
由于它阻塞了主线程,请考虑使用 Alamofire / URLSession