Ios 为什么我的应用程序在我使用“时崩溃?”;如果让;语句以展开可选collectionViewCell?

Ios 为什么我的应用程序在我使用“时崩溃?”;如果让;语句以展开可选collectionViewCell?,ios,swift3,Ios,Swift3,我在xcode中遇到了这个错误,这段代码已经运行了几个月了,我一辈子都搞不清楚为什么代码会抛出这个错误 错误:线程1:致命错误:在展开可选值时意外发现nil 很抱歉,如果已经有人问过这个问题,但是我在网站上浏览了一段时间,仍然无法找到解决方案 编辑:在模拟器中运行应用程序时,我没有此问题。在更新XCode之前,我也没有这个问题 编辑2:调试器告诉我collectionView为nil,但我仍然不确定它为什么为nil 下面是如何在我的ViewController中定义collectionView:

我在xcode中遇到了这个错误,这段代码已经运行了几个月了,我一辈子都搞不清楚为什么代码会抛出这个错误

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

很抱歉,如果已经有人问过这个问题,但是我在网站上浏览了一段时间,仍然无法找到解决方案

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

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


下面是如何在我的ViewController中定义collectionView:
@IBOutlet弱var collectionView:UICollectionView

虽然我不确定collectionview最初为何为零,但我通过使用以下代码来避免应用程序崩溃:

if collectionView != nil {
    ... code goes here ...
}
这将是公认的答案,直到有人来解释为什么一开始是零


编辑:如果您试图找出它为什么为零,并且想要问题所属的ViewController代码,我很乐意提供它。

也许是集合视图为零?或者索引路径?有些是零。发生时,您能检查调试器中的值吗?永远不要自己调用datasource方法
collectionView(\uCollectionView:cellForItemAt:)
。始终使用
cellForItem(位于
UICollectionView
@vadian的
cellForItem:)为什么我不应该使用collectionView(\uCollectionView:cellForItemAt:)?它是框架专门调用的委托/数据源方法之一。您将得到一个新的出列单元,它不是您期望的单元。
if collectionView != nil {
    ... code goes here ...
}