Как быстро показать элемент в tableView массива, который находится внутри другого массива? - PullRequest
0 голосов
/ 13 июля 2020

Это модель, которую я создал:

struct Friends: Codable{
var name:String
var position:String
var details:[Detail]
}
struct Detail: Codable{
var detail:String
}

Я хочу детализировать в виде таблицы. Как это сделать?

var data = [Friends]()

TableView:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return data.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    let data = data[indexPath.row]
    let dataDetail = data.dataDetail[indexPath.row]
    cell.textLabel?.text = "\(dataDetail)"
    return cell
}

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Чтобы иметь возможность отображать все значения в массиве details, вы можете map экземпляры Detail к их значениям detail и join строке массив в одну строку, разделенную запятыми

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return data.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    let item = data[indexPath.row]        
    cell.textLabel?.text = item.details.map{$0.datail}.joined(separator: ", ")
    return cell
}
0 голосов
/ 13 июля 2020
 plz try this code
  
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return data.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
     let dta = data[indexPath.row]
         cell.textLabel?.text = dta.details[indexPath.row].detail
    return cell
}
...