我有一个获取位置坐标并获取天气数据的函数。该函数在代码的其他地方使用。
目前我直接在 cellForRowAt 中使用 urlsession 但不想重复代码。有没有办法在 TableViewController 的 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]? {
}
}
在 cellForRowAt 中,如何在返回单元格之前修改天气函数以获取此处的值,但天气函数完成的原始功能也应该保留?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = ...
Data.weather() ** ??? **
cell.label.text = "" // value from weather
return cell
}