Значение типа 'UICollectionViewCell?'не имеет члена 'contentImage' - PullRequest
0 голосов
/ 29 мая 2019

У меня есть два пользовательских UICollectionViewCells (AddImageCollectionViewCell, ItemCollectionViewCell), которые я загружаю в зависимости от indexpath. Вот мой код для cellForItemAtIndexpath -

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        var cell :UICollectionViewCell!

        if indexPath.row == 0{
            cell = collectionView.dequeueReusableCell(withReuseIdentifier: "addImageCell", for: indexPath) as! AddImageCollectionViewCell
        }
        else{
             cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ItemCell", for: indexPath) as! ItemCollectionViewCell
            cell.contentImage = self.droppedItemList[indexPath.row] //error here
        }
        return cell
    }

Я получаю сообщение об ошибке "Значение типа 'UICollectionViewCell?' не имеет члена 'contentImage' ". Почему моя ячейка в предложении else не приведена к типу "ItemCollectionViewCell".

Я знаю, я должен делать что-то очень глупое. Я был бы очень благодарен, если бы кто-то указал мне правильное направление.

1 Ответ

2 голосов
/ 29 мая 2019

Вы объявляете cell как базовый тип UICollectionViewCell, в этом причина. Вернуть ячейки отдельно

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    if indexPath.row == 0 {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "addImageCell", for: indexPath) as! AddImageCollectionViewCell
        return cell
    } else {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ItemCell", for: indexPath) as! ItemCollectionViewCell
        cell.contentImage = self.droppedItemList[indexPath.row]
        return cell
    }
}
...