为什么我使用&#34时我的应用程序崩溃;如果让"用于解包可选collectionViewCell的语句?

时间:2018-06-12 14:51:50

标签: ios swift3

我在这段代码运行良好的几个月之后在xcode中收到了这个错误,我无法解释为什么代码会抛出错误。

错误:线程1:致命错误:在解包可选值时意外发现nil

if let recentsRow = collectionView(collectionView, cellForItemAt: recentsIndex) as? DashboardRowCollectionViewCell {
        recentsRow.documents = recents ?? []
}

if let favoritesRow = collectionView(collectionView, cellForItemAt: favoritesIndex) as? DashboardRowCollectionViewCell {
        favoritesRow.documents = favorites ?? []
}

很抱歉,如果已经询问过这个问题,但我在网站上看了一会儿,仍然无法提出解决方案。

编辑:在模拟器中运行应用程序时,我没有此问题。在更新XCode之前,我也没有遇到过这个问题。

编辑2:调试器告诉我collectionView是零,但我仍然不确定为什么它是零。

以下是我在ViewController中定义collectionView的方法:@IBOutlet weak var collectionView: UICollectionView!

1 个答案:

答案 0 :(得分:0)

虽然我不确定为什么收集视图首先是nil,但我通过使用以下内容包围违规代码来修复我的应用程序崩溃:

if collectionView != nil {
    ... code goes here ...
}

这将是公认的答案,直到有人来解释为什么开始时为零。

编辑:如果你想弄清楚为什么它是nil并且想要问题所属的ViewController代码,我很乐意提供它。