collectionview试图在viewDidLoad异常中调用cellForItem

时间:2017-02-21 00:43:54

标签: swift uicollectionview

我试图通过遍历它们并检查按钮的文本来选择一些单元格。我尝试检查我的集合视图的计数,并在获取异常强制转换单元格之前显示5。

这是我的代码:

for index in 0..<array.count {
      let indexPath = IndexPath(item: index, section: 0)

      let cell = ingestionCollectionView.cellForItem(at: indexPath) as! cvcBase

       //Set property of the cell              
}

当我在viewWillAppear中调用这个确切的代码时,我得到了相同的异常..当我在viewDidAppear中调用它时,我没有得到异常,但我注意到我正在执行的操作有延迟。

代码在此行let cell = ingestionCollectionView.cellForItem(at: indexPath) as! cvcBase崩溃,如果我不强制转发,则UICollectionViewCell为零。

错误讯息:

fatal error: unexpectedly found nil while unwrapping an Optional value
2017-02-20 19:43:30.093023 Project[1073:218460] fatal error: unexpectedly found nil while unwrapping an Optional value

2 个答案:

答案 0 :(得分:1)

您遇到了问题,因为尚未加载集合视图,因此从集合视图访问单元格的任何尝试都将失败。

这是完全错误的方法。

您应该做的是根据需要设置数据模型,以指示所需的数据开始状态。

然后,collectionView:cellForItemAtIndexPath:数据源方法的实现应根据您的数据模型正确设置单元格。

答案 1 :(得分:0)

为什么不在单元格可用时展开:

for index in 0..<array.count {
      let indexPath = IndexPath(item: index, section: 0)

      if let cell = ingestionCollectionView.cellForItem(at: indexPath) as? cvcBase{
       //Set property of the cell              
      }
}