読者です 読者をやめる 読者になる 読者になる

UICollectionViewCellをdequeueReusableCellWithReuseIdentifierで生成/取得する時はStoryboard上に該当するIdentifierのUICollectionViewCellがないと落ちる

Objective-C Xcode

'NSInternalInconsistencyException', reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier Hoge - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

こんな感じで落ちる。

UITableViewと同じような感じでStoryboardでUICollectionViewを配置してOutlet接続してデリゲートメソッドの実装してて詰まってた。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Hoge" forIndexPath:indexPath];
    
    // cellをなんかする
    return cell;
}

dequeueReusableCellWithReuseIdentifierの所で落ちてた。エラーの通りで該当するIdentifierのUICollectionViewCellがStoryboardに存在しないから落ちる。
UITableViewの時はUITableViewCellをStoryboardで置いてない状態だけどできたんだけどなーよくわからん。
numberOfItemsInSectionで設定した数をStoryboardで置く必要あんの?それはだるい
UICollectionViewCellを1つ配置すればnumberOfItemsInSectionで指定した数表示された。よかった。