我调用 firebase 数据库来检索位置名称。我将数据存储在字典数组中,然后使用数组中的数据填充 collectionView 单元格。当 Collection View 单元格被选中时,我转到另一个 View Controller 并将数据传递给 View Controller 内的 collectionViewCell。
控制台打印出正确的值,但是当我将 UILabel 文本设置为等于该值时,编译器会抛出一个 nil optional unwrap 错误。
在 didSelectItemAt 中将数据传递给 View Controller :
我是否错误地传递了数据? 我不确定为什么控制台正在打印该值,但编译器会抛出错误。非常感谢任何关于为什么会发生这种情况以及如何纠正这种情况的见解。
编辑:ozzieozumo 是正确的,我错误地实例化了我的单元类。我正在创建我的单元格的一个新实例,但没有连接到 Storyboard,这导致我的标签为零。
解决方案:我编辑了我的 segue 方法,将我的字典作为参数。我没有在方法中实例化 CollectionViewCell,而是实例化了 CollectionViewController 并将我的字典传递给 CollectionViewController。在 cellForItemAt 下的 Controller 中,我设置了将数据传递给单元格。
最佳答案
赋值语句失败,因为左边是 nil,右边不是。
由于您实例化单元实例的方式,您的导出为零。
让 detailImageCell = LocationDetailImagesCell()
这将创建您的单元格的一个新实例,但该实例与您的 Storyboard/xibs 无关,因此 socket 将未初始化。
这是您的直接问题。
关于swift - 在 UICollectionViewCell 中设置 firebase 值时出现 Nil 可选解包错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48030180/