表格单元格的label.text返回nil(swift)

时间:2016-11-29 23:19:52

标签: ios swift

我有一个包含静态内容的表视图,我试图访问所选行的标签文本,但由于某种原因它返回nil。可能导致什么呢?

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let currentCell = tableView.cellForRow(at: indexPath) as UITableViewCell?
    let label = currentCell!.textLabel
    if label != nil {
        let text = label!.text
        NSLog(text ?? "Label text is nil")
    } else {
        NSLog("Label is nil")
    }
}

在我的例子中,我看到标签文字为零

2 个答案:

答案 0 :(得分:0)

这是XY problem(链接),

您不应该将模型数据存储在单元格的视图中。单元格是视图对象。它用于显示信息和收集用户的输入。

您应该将数据存储在模型对象中。对于表视图,一个数组(或分段表视图的数组数组)是一个不错的选择。

使用indexPath从模型中查找所需的字符串,而不是尝试从单元格标签中获取文本。

答案 1 :(得分:0)

确保将属性检查器上的单元格样式设置为“自定义”以外的任何其他样式。 如果它是自定义的,则从您的代码中看起来您似乎没有定位它。