You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CollectionView Cell中设置Label值时触发nil解包致命错误

解决Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value崩溃问题

这个崩溃的核心原因很明确:你在代码里重复注册了CollectionView Cell,导致从Storyboard/XIB里配置的Cell布局没有被加载,cellTitle这个IBOutlet自然就是nil,赋值时触发了崩溃。

问题根源

你在viewDidLoad中执行了这行代码:

self.partsCollectionView.register(SelectionCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

但你的SelectionCollectionViewCell是通过Storyboard创建的,并且已经在Storyboard中配置了复用标识符cell、关联了cellTitle的IBOutlet。代码里的register方法会覆盖Storyboard的配置,让系统创建一个纯代码版本的SelectionCollectionViewCell——这个版本没有加载你在Storyboard里设计的Label,所以cellTitle就是nil。

修复步骤

  1. 移除代码中的注册语句
    直接删掉viewDidLoad里的那行register代码,让CollectionView使用Storyboard中已经配置好的Cell模板。

  2. 确认Storyboard的配置正确
    再检查一遍这几个关键点:

    • 选中CollectionView的Cell,在Attributes Inspector里确认Reuse Identifier是cell
    • 在Identity Inspector里确认Cell的Class设置为SelectionCollectionViewCell
    • 选中Cell,打开Connections Inspector,确认cellTitle已经正确连接到Label上(没有红色感叹号)
  3. 可选:确认CollectionView的代理和数据源
    如果你的CollectionView没有在Storyboard里关联dataSource和delegate,记得在viewDidLoad里加上:

    partsCollectionView.dataSource = self
    partsCollectionView.delegate = self
    

做完这些修改后,重新运行代码,cellTitle就能正常获取到,赋值也就不会崩溃了。

内容的提问来源于stack exchange,提问作者Ashish Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:06:52