我想在表格单元格中显示数据 现在我想在屏幕上将数据从api显示到表格单元格视图
此api链接的输出显示在控制台中:
这是结构变量
struct Team: Codable{ //here is struct veriables
var api_id: Int
var id: Int
var first_team:Int
var second_team:Int
var date: String }
这是我从api获取数据
guard let url = URL(string: "http://127.0.0.1:8000/api/matches") else {return}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let dataResponse = data,
error == nil else {
print(error?.localizedDescription ?? "Response Error")
return }
do {
//here dataResponse received from a network request
let decoder = JSONDecoder()
let model = try decoder.decode([Team].self, from:
dataResponse) //Decode JSON Response Data
print(model)
} catch let parsingError {
print("Error", parsingError)
}
}
task.resume()
这里要使用数据并显示在屏幕上
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TeamCell", for: indexPath) as! TeamTableViewCell
//I want to show here data
return cell
}
答案 0 :(得分:0)
创建用于存储团队的全局变量
var teams = [Team]()
替换
let model = try decoder.decode([Team].self, from:
dataResponse) //Decode JSON Response Data
使用
teams = try decoder.decode([Team].self, from:
dataResponse) //Decode JSON Response Data
tableView.reloadData()
然后
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return teams.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TeamCell", for:
indexPath) as! TeamTableViewCell
if let team = teams[indexPath.row] {
cell.firstTeamLabel.text = "\(team.first_team)"
cell.dateLabel.text = team.date
...
// Note: Replace label names with your actual one.
}
return cell
}