UICollectionViewを読み込もうとすると、このエラーメッセージが表示されます。
2015-07-23 16:16:09.754 XXXXX [24780:465607]キャッチされなかった例外 'NSInternalInconsistencyException'が原因でアプリを終了しました、理由: '種類のビューをデキューできませんでした:識別子CollectionViewCellを持つUICollectionElementKindCell-ペン先またはクラスを登録する必要があります識別子またはストーリーボードのプロトタイプセルを接続します」
最初のスローコールスタック:
私のコード
@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
を宣言しましたが、それでもエラーメッセージが表示されます。
あなたの例外を見た後:
2015-07-23 16:16:09.754 XXXXX [24780:465607] *キャッチされなかった例外 'NSInternalInconsistencyException'が原因でアプリを終了しました。理由: '種類のビューをデキューできませんでした:識別子CollectionViewCellを持つUICollectionElementKindCell-ペン先またはクラスを登録する必要があります識別子の場合、またはストーリーボードのプロトタイプセルを接続する '*最初のスローコールスタック:
最後の部分が最も重要です:
識別子のペン先またはクラスを登録するか、ストーリーボードのプロトタイプセルを接続する必要があります
これは、コレクションビューにカスタムセルが登録されていないことを意味します。これを解決するには、viewDidLoad
に次を追加します。
var nib = UINib(nibName: "UICollectionElementKindCell", bundle:nil)
self.collectionView.registerNib(nib, forCellReuseIdentifier: "CollectionViewCell")
Swift 3:
collectionView.register(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")
あなたのviewDidLoad()にこのコードを入れてください
collectionView.registerClass(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")