如何在TableView中显示对象数组 - swift

时间:2017-06-19 20:41:30

标签: arrays swift uitableview tableviewcell

您好,我能帮助我吗?我希望在TableView中显示一个对象数组,但只显示数组的一个组件。

这里是我的代码:

extension ViewController: UITableViewDataSource {
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as UITableViewCell
    let index = indexPath.row as Int

    for dep in autoCompleteDestino {
        DestinoInstancia.idDestino = dep.idDestino!
        DestinoInstancia.desDestino = dep.desDestino!
        autoCompleteDestino.append(dep)
    }

    print(autoCompleteDestino)
    cell.textLabel?.text = String(describing: autoCompleteDestino[index])

    return cell
}

}

所以..我想在这一行显示,只有DestinoInstancia.desDestino = dep.desDestino!

cell.textLabel?.text = String(describing: autoCompleteDestino[index])

目前以这种方式向我展示:

  

MTiOS.Destinos(idDestino:Optional(1),desDestino:Optional(“Asunción”)),MTiOS.Destinos(idDestino:Optional(2),desDestino:Optional(“Miami”)),MTiOS.Destinos(idDestino) :可选(3),desDestino:可选(“Atenas”)),MTiOS.Destinos(idDestino:Optional(5),desDestino:Optional(“Madrid”))] enter image description here

当我只想告诉我时:

  

亚松森   迈阿密   阿特纳斯   马德里

请帮助!

1 个答案:

答案 0 :(得分:2)

我认为问题在于String转换和解包的选项。

尝试替换它:

    cell.textLabel?.text = String(describing: autoCompleteDestino[index])

有了这个:

    if let str = autoCompleteDestino[index].desDestino {
        cell.textLabel?.text = str
    }

此替换安全地打开可选项,同时还检索正确的字符串。