我遇到错误无法分配类型的值

时间:2019-05-04 16:45:49

标签: swift decode

为什么我出错:无法将类型为“ 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)
}
}

1 个答案:

答案 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

相关问题