Swift 为什么我的集合视图单元格返回错误;出列的单元格不是TileCollectionViewCell的实例;
我正在通过故事板为我的应用程序构建一个集合视图,我已经完成了集合视图的整个设置。我创建了Swift 为什么我的集合视图单元格返回错误;出列的单元格不是TileCollectionViewCell的实例;,swift,uicollectionview,Swift,Uicollectionview,我正在通过故事板为我的应用程序构建一个集合视图,我已经完成了集合视图的整个设置。我创建了UICollectionViewController,并为UICollectionViewController创建了一个代码文件。我还为原型CollectionViewCell创建了一个代码文件,并为其分配了一个重用标识符。我创建了一个guard let语句来检测任何致命错误,并将CollectionViewCell退出队列 我在类行上方的import语句下方编写了这段代码 private let reuse
UICollectionViewController
,并为UICollectionViewController
创建了一个代码文件。我还为原型CollectionViewCell
创建了一个代码文件,并为其分配了一个重用标识符。我创建了一个guard let语句来检测任何致命错误,并将CollectionViewCell
退出队列
我在类行上方的import语句下方编写了这段代码
private let reuseIdentifier = "TileCell"
我在类中编写了这个重写函数
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as? TileCollectionViewCell else {
fatalError("The dequeued cell is not an instance of TileCollectionViewCell")
}
// Configure the cell
return cell
}
但是,当我在模拟器中运行应用程序时,它会崩溃,并将guard let语句中的and错误返回到控制台:
出列的单元格不是TileCollectionViewCell的实例
它为什么返回此错误?在设置集合视图时调用寄存器(\uuU2:forCellWithReuseIdentifier:)
方法
collectionView.register(TileCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
在设置集合视图时调用register(uU2;:forCellWithReuseIdentifier:)
方法
collectionView.register(TileCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
检查事项:
很可能您尚未注册cel。每当您想在tableview/collectionview中重用cel时,都必须注册该单元格。通常可以在viewDidLoad中执行此操作。看看沉默的回答。我想这会满足你的需要。如果您使用的是故事板,还可以通过选择UICollectionViews来分配标识符,该UICollectionViews很可能尚未注册cel。每当您想在tableview/collectionview中重用cel时,都必须注册该单元格。通常可以在viewDidLoad中执行此操作。看看沉默的回答。我想这会满足你的需要。如果您使用的是情节提要,还可以通过选择UICollectionView来分配标识符