终止app:无法使类型的视图出列:带标识符的UICollectionElementKindCell

时间:2016-01-22 19:15:21

标签: ios swift uicollectionview

我正在为UICollectionViewCell实现自定义.xib,并且应用程序崩溃了:

  

由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'无法使类型的视图出列:具有标识符DaySelectorCell的UICollectionElementKindCell - 必须为标识符注册一个nib或类或连接一个故事板中的原型单元'

有几个答案表明标识符中有空格或缺少空格。我已经对所有内容进行了三重检查,而且它还在投掷。

这是我的xib的Storyboard配置:

这是我的DaySelectorCell.swift类:

import Foundation
import UIKit

class DaySelectorCell: UICollectionViewCell {
    @IBOutlet weak var dayOfWeekButton: UIButton!
    var dayNumber: Int = -1
}

我的collectionView委托实现:

extension CustomViewController: UICollectionViewDelegate, UICollectionViewDataSource {

    let days = ["M", "T", "W", "T", "F", "S", "S"]

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        let id = "DaySelectorCell"
        var cell: DaySelectorCell! = self.daySelector.dequeueReusableCellWithReuseIdentifier(id, forIndexPath: indexPath) as? DaySelectorCell
        if cell == nil {
            collectionView.registerNib(UINib(nibName: id, bundle: nil), forCellWithReuseIdentifier: id)
            cell = collectionView.dequeueReusableCellWithReuseIdentifier(id, forIndexPath: indexPath) as? DaySelectorCell
        }

        cell.dayOfWeekButton.setTitle(days[indexPath.row], forState: .Normal)
        cell.dayNumber = indexPath.row

        return cell
    }

    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 7
    }
}

1 个答案:

答案 0 :(得分:0)

如果dan的答案不起作用(并且您已经注册了单元格),请执行清理,手动删除Xcode的构建文件夹,退出Xcode,重新启动Mac并重试。 Apple在Xcode上做得非常糟糕......