无法向 UITableViewCell 添加值

Posted

技术标签:

【中文标题】无法向 UITableViewCell 添加值【英文标题】:Cannot add values to a UITableViewCell 【发布时间】:2018-01-28 17:49:58 【问题描述】:

我有两个视图控制器,其中一个是侧面菜单。 我尝试使用数组中的数据初始化其单元格,但在尝试为单元格标签文本分配值时一直出错。 这是我的代码:

class TableViewCell: UITableViewCell 
    @IBOutlet weak var cellImage: UIImageView!
    @IBOutlet weak var cellLabel: UILabel!



class SideMenuTableViewController: UITableViewController 
    let vc = ViewController()
    override func viewWillAppear(_ animated: Bool) 
        super.viewWillAppear(animated)

        tableView.reloadData()

    

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
        return vc.array.count

    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
        let myImage = UIImage(named: "checkbox")
        cell.cellLabel.text = "test" //HERE IS THE ERROR
        cell.cellImage.image = myImage
        return cell
    


这是错误。

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

在调试器中,我可以看到我的单元格包含来自Sotryboard 的标签和图像,但我无法将myImage 和任何文本分配给单元格。 我究竟做错了什么? 提前感谢您的帮助。

【问题讨论】:

究竟是哪一行导致了崩溃?插座是否连接在电池中? 谢谢@maddy,我还没有连接插座。 ***.com/questions/32170456/…的可能重复 【参考方案1】:

好像

let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell

导致崩溃。您是否记得将Storyboard 中的单元原型的类设置为TableViewCell

【讨论】:

另外不要忘记将标识符设置为“cell” 是的,我做到了。问题的根源是忘记连接插座。【参考方案2】:

检查: 1.自定义单元格在xib中设置了reusableCellIdentifier。

    如果您使用 xib 进行自定义单元格,自定义单元格应使用UITableView 注册:

tableView.register(TableViewCell.self, forCellReuseIdentifier: "你的标识符")

【讨论】:

以上是关于无法向 UITableViewCell 添加值的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableViewCell 中添加 UICollectionView 后 UI 突然发生变化

创建自定义 UITableViewCell

无法与 UITableViewCell 中的任何内容进行交互,我在某处被布尔值阻塞,它在哪里?

如何向 UITableViewCell 添加手势?

滚动时如何向 UITableViewCell 添加更多按钮?

如何向我的 Kendo UI 调度程序添加新的布尔值?