私は位置座標を取り、気象データを取得する関数を持っています。この関数は、コードの他の場所で使用されます。TableViewCellをurlsessionを持つ関数で更新するには? Swift
現在、私はcellForRowAtでurlsessionを直接使用していますが、コードを繰り返す必要はありません。 TableViewControllerのcellForRowAtでこのweather関数を呼び出してセルを更新する方法はありますか?天候機能、撮影完了の
セルを返す前に、ここで値を取得するために、気象機能を変更する方法cellForRowAt、でclass Data {
static func weather (_ coord:String, completion: @escaping...([String?]) ->(){
let url = URL(string: "https://")
let task = URLSession.shared.dataTask(with: url!) { data, response, error in
let json = processData(data) //returns [String]?
completion(json)
}
task.resume()
}
static func processData(_ data: Data) -> [String]? {
}
}
が、元の機能も滞在する必要がありますか?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = ...
Data.weather() ** ??? **
cell.label.text = "" // value from weather
return cell
}
**ビューで** **ビューを更新しないでください* *。 **コントローラ**の**モデル**を更新し、**ビュー**を更新します。 – vadian
tableView.reloadData()は完了後(リクエストが完全に呼び出されたとき)に使用します。 –