Я анализирую данные JSON во вложенную структуру объекта модели. Я также сортирую модель и добавляю в свой массив sortedArr, который отсортирован по алфавиту. Я пытаюсь отобразить имена и другую информацию, такую как биография, в виде таблицы. При попытке отобразить имена indexPath в моей ячейке табличного представления я не могу связаться с членами массива, такими как fullName, биография и т. Д.
struct Response: Decodable {
struct Students: Decodable {
var fullName :String
var biography:String
var emailAddress:String
enum CodingKeys: String, CodingKey {
case fullName = "full_name"
case biography
case emailAddress = "email_address"
}
}
var students:[Students]
}
var sortedArr = [[Response.Students]]()
func parseData(){
guard let url = URL(string: "xxxxxx") else {return}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let dataResponse = data,
error == nil else {
print(error?.localizedDescription ?? "Error")
return
}
do {
let response = try! JSONDecoder().decode(Response.self, from: dataResponse)
self.sortedArr = response.students.sorted{$0.fullName < $1.fullName}
DispatchQueue.main.async {
self.tableView.reloadData()
}
} catch let parsingError {
print("Error", parsingError)
}
}
task.resume()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return sortedArr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath) as! EmployeeTableViewCell
let emps = sortedArr[indexPath.row]
cell.titleLabel.text = emps.fullName //has no member fullName
return cell
}