我试图通过遍历它们并检查按钮的文本来选择一些单元格。我尝试检查我的集合视图的计数,并在获取异常强制转换单元格之前显示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
答案 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
}
}