【问题标题】:Could not get JSONArray in variable Swift无法在变量 Swift 中获取 JSONArray
【发布时间】:2021-06-22 09:13:46
【问题描述】:

所以基本上我想从我的 REST 服务中创建一个 TableList。 REST服务可以通过这个代码块解码:

func getAllParkeergarages(_ completion: @escaping ([Parkeergarage]) -> ()) {
        if let url = URL(string: "http://localhost:8080/parkeergarages") {
           URLSession.shared.dataTask(with: url) { data, response, error in
              if let data = data {

                  do {
                     let res = try JSONDecoder().decode([Parkeergarage].self, from: data)
                    print(res)
                    completion(res)
                    return
                  } catch let error {
                     print(error)
                  }
              }
           }.resume()
        }

}

通过使用此代码块,我可以在终端中打印整个 JSON:

getAllParkeergarages { (array) in
        print(array)
    }

要在 TableView 中获取数据,我需要将数据保存在变量中。但这是我卡住的地方。我尝试了一些不同的方法,例如:

private var data: [Parkeergarage] = getAllParkeergarages { (array) in
    return array
}

但是给了我一个错误:'无法将'()'类型的值转换为指定类型'[Parkeergarage]'。有人可以帮我得到变量中函数的结果吗?

【问题讨论】:

  • 您需要将最后一个代码 private var data: [Parkeergarage] 分开,然后在其他地方 getAllParkeergarages { (array) in self.data = array }

标签: arrays json swift variables


【解决方案1】:

你应该这样做

private var data: [Parkeergarage] = []

在 viewDidLoad 中

override func viewDidLoad() {
    super.viewDidLoad()
    getAllParkeergarages { (array) in
        self.data = array
        self.tableView.reloadData()
    }
}

我不能再解释了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多