在 UICollectionViewCell 中设置 firebase 值时出现 Nil 可选解包错误
Nil optional unwrap error when firebase value gets set in UICollectionViewCell
我调用 firebase 数据库来检索位置名称。我将数据存储在字典数组中,然后使用数组中的数据填充 collectionView 单元格。选择集合视图单元格后,我转到另一个视图控制器并将数据传递给视图控制器内的 collectionViewCell。
控制台打印出正确的值,但是当我将 UILabel 文本设置为等于该值时,编译器抛出一个 nil 可选解包错误。
在 didSelectItemAt 中将数据传递给视图控制器:
正在为 UILabel 文本设置一个值:
控制台打印值:
我传递的数据不正确吗?
我不确定为什么控制台正在打印该值,但编译器会抛出错误。非常感谢任何关于为什么会发生这种情况以及如何纠正这种情况的见解。
编辑:ozzieozumo 是正确的,我错误地实例化了我的单元 class。我正在创建我的单元格的一个新实例,但没有连接到故事板,这导致我的标签为零。
解决方案:我编辑了我的 segue 方法以将我的字典作为参数。我没有在方法中实例化 CollectionViewCell,而是实例化了 CollectionViewController 并将我的字典传递给 CollectionViewController。在 cellForItemAt 下的控制器中,我设置将数据传递给单元格。
该标签未在界面生成器中链接,该元素为 nil
赋值语句失败,因为左侧为零,右侧不是。
由于您实例化单元实例的方式,您的插座为零。
let detailImageCell = LocationDetailImagesCell()
这将创建一个新的单元实例,但该实例与您的 storyboards/xibs 无关,因此插座将未初始化。
这是您的直接问题。
我调用 firebase 数据库来检索位置名称。我将数据存储在字典数组中,然后使用数组中的数据填充 collectionView 单元格。选择集合视图单元格后,我转到另一个视图控制器并将数据传递给视图控制器内的 collectionViewCell。
控制台打印出正确的值,但是当我将 UILabel 文本设置为等于该值时,编译器抛出一个 nil 可选解包错误。
在 didSelectItemAt 中将数据传递给视图控制器:
正在为 UILabel 文本设置一个值:
控制台打印值:
我传递的数据不正确吗? 我不确定为什么控制台正在打印该值,但编译器会抛出错误。非常感谢任何关于为什么会发生这种情况以及如何纠正这种情况的见解。
编辑:ozzieozumo 是正确的,我错误地实例化了我的单元 class。我正在创建我的单元格的一个新实例,但没有连接到故事板,这导致我的标签为零。
解决方案:我编辑了我的 segue 方法以将我的字典作为参数。我没有在方法中实例化 CollectionViewCell,而是实例化了 CollectionViewController 并将我的字典传递给 CollectionViewController。在 cellForItemAt 下的控制器中,我设置将数据传递给单元格。
该标签未在界面生成器中链接,该元素为 nil
赋值语句失败,因为左侧为零,右侧不是。
由于您实例化单元实例的方式,您的插座为零。
let detailImageCell = LocationDetailImagesCell()
这将创建一个新的单元实例,但该实例与您的 storyboards/xibs 无关,因此插座将未初始化。
这是您的直接问题。