尝试加载UICollectionView时收到此错误消息。
2015-07-23 16:16:09.754 XXXXX [24780:465607]终止应用程序 未被捕获的异常' NSInternalInconsistencyException',原因:'可以 不要出类型的视图:UICollectionElementKindCell with 标识符CollectionViewCell - 必须注册一个nib或类 标识符或连接故事板中的原型单元'
第一次抛出调用堆栈:
我的代码
@IBOutlet var collectionView: UICollectionView!
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell
cell.backgroundColor = UIColor.blackColor()
cell.textLabel?.text = "\(indexPath.section):\(indexPath.row)"
cell.imageView?.image = UIImage(named: "category")
return cell
}
我已在故事板检查器中声明CollectionViewCell
,但仍会出现错误消息。
答案 0 :(得分:10)
看了你的例外后:
2015-07-23 16:16:09.754 XXXXX [24780:465607] *终止应用程序 未捕获的异常'NSInternalInconsistencyException',原因:'可以 不要出类型的视图:UICollectionElementKindCell with 标识符CollectionViewCell - 必须注册一个nib或类 标识符或连接故事板中的原型单元'*首先抛出 调用堆栈:
最后一部分是最重要的:
必须注册一个笔尖或一个类 标识符或连接故事板中的原型单元
这表示您的集合视图尚未注册您的自定义单元格。要解决此问题,请在var nib = UINib(nibName: "UICollectionElementKindCell", bundle:nil)
self.collectionView.registerNib(nib, forCellReuseIdentifier: "CollectionViewCell")
中添加以下内容:
SELECT * FROM `your_table` WHERE `username` = "USERNAME TO REGISTER"
答案 1 :(得分:7)
对于Swift 3:
collectionView.register(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")
答案 2 :(得分:0)
在你的viewDidLoad()中输入此代码
collectionView.registerClass(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")