Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 为什么我的集合视图单元格返回错误;出列的单元格不是TileCollectionViewCell的实例;_Swift_Uicollectionview - Fatal编程技术网

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)
检查事项:

  • 检查脚本中分配的可重用标识符是否与“TileCell”匹配
  • 集合视图中的检查单元已分配给序列图像板中的TileCollectionViewCell类
  • 检查事项:

  • 检查脚本中分配的可重用标识符是否与“TileCell”匹配
  • 集合视图中的检查单元已分配给序列图像板中的TileCollectionViewCell类

  • 很可能您尚未注册cel。每当您想在tableview/collectionview中重用cel时,都必须注册该单元格。通常可以在viewDidLoad中执行此操作。看看沉默的回答。我想这会满足你的需要。如果您使用的是故事板,还可以通过选择UICollectionViews来分配标识符,该UICollectionViews很可能尚未注册cel。每当您想在tableview/collectionview中重用cel时,都必须注册该单元格。通常可以在viewDidLoad中执行此操作。看看沉默的回答。我想这会满足你的需要。如果您使用的是情节提要,还可以通过选择UICollectionView来分配标识符