找到零表视图单元格

Posted

技术标签:

【中文标题】找到零表视图单元格【英文标题】:Found nil table view cell 【发布时间】:2016-03-25 20:10:18 【问题描述】:

我有一个二维数组:

var s = [["Maths"],["English"]]

cellPressed 是一个变量,用于查找在前一个视图中按下的单元格,这一切正常

每次我这样做:

func tableView(tableView: UITableView,
               cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let Cell: subjectTableViewCell =
        tableView.dequeueReusableCellWithIdentifier("subjectCell") as! subjectTableViewCell
    Cell.subjectName.text = s[cellPressed][indexPath.row]
    return Cell

我明白了:

fatal error: unexpectedly found nil while unwrapping an Optional value

【问题讨论】:

您是否在情节提要中设置了正确的标识符? + 您是否在情节提要中附加了 subjectTableViewCell 类? (还有一件快速的事情:尝试用 lowerCamelCase 命名变量,用 UpperCamelCase 命名类) 是的,我都检查过了,会做吗?抱歉,这是新手 这是您现在使用的确切代码吗? 天哪!我想到了!插座甚至没有连接,这就是为什么我得到零!无论如何,谢谢! James,你可以添加解决方案,这样我就可以做那件事了吗? 【参考方案1】:

这只能是两件事。

    您的单元格为 nil(意味着您设置了错误!) s[cellPressed][indexPath.row] 为零

实际上,我认为只有第一个是可能的,因为如果超出范围,它实际上会崩溃,因此请确保在访问之前完全配置您的单元格!

【讨论】:

【参考方案2】:

试试下面的。您不应该强制展开单元格。

func tableView (tableView: UITableView, cellForRowAtIndexPath
indexPath: NSIndexPath) -> UITableViewCell

     let Cell: subjectTableViewCell = tableView.dequeueReusableCellWithIdentifier("subjectCell") as? subjectTableViewCell ?? subjectTableViewCell()
     Cell.subjectName.text = s[cellPressed][indexPath.row]
     return Cell

【讨论】:

另外,从它的声音来看,您的 subjectName 很可能是 nil。如果 Cell.subjectName.text == nil print("subject name is nil") 感谢您的帮助,但我想通了,插座甚至没有连接?以为我做到了,但它有些锄头断开了!

以上是关于找到零表视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

表格视图单元格在设备上不可见

如何动态更改自定义单元格的表格视图单元格的高度?

将新行添加到表后动态创建视图

如何找到表格视图的最后一个 indexPath 单元格?

在集合视图中找到中间单元格并更改其内容

表视图单元格内的集合视图