我正在获取超出范围的索引致命错误。我正在尝试在表视图控制器的一个单元格中实现2个集合视图。这两个视图具有不同的数据源。在从数据源加载单元格中的图像数据时,由于此错误,第二个集合视图单元格未加载图像数据。即使我转储BList
的内容,它仍在(key,value)对方式错误发生在以下行let bannerList = BList[indexPath.row]
个
我看过其他类似的问题,但没有一个是有用的
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionCell", for: indexPath) as! T_PCollectionViewCell
if (collectionView === upperBannerCollectionView) {
if OList.count > 0 {
let olist2 = OList[indexPath.row]
cell.load_image(olist2.banner_image)
}
} else {
if BList.count > 0 {
let blist = BList[indexPath.row]
cell.load_image(blist.banner_image)
}
}
return cell
}
下面是collectionView的'numberOfItems'的实现
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
if (collectionView === uBCollectionView) {
return self.OList.count
} else {
return self.BList.count
}
}
添加了带图像的打印(BList)调试
debug of print(BList)debugger screenshot显示器
在尝试从数据源BannerList加载数据时,我不应该得到这样的索引超出范围错误。
2条答案
按热度按时间cetgtptt1#
首先,我认为你的主要问题是“numberOfItemsInSection”中的数组。
假设您正在“numberOfItemsInSection”中使用OtokuList.count,此时OtokuList有3个项目,而BannerList只有一个项目。
我的解决方案是:
ddrv8njm2#
我认为这个问题发生在collectionView找不到索引的时候。要解决这个问题,我们需要应用小检查。yourArray.count〉indexPath.row。