Первое:
Принудительное развертывание значений (используя!) В целом является плохой практикой, и ее можно (и нужно) избегать в большинстве случаев.Принудительное развертывание гарантирует полный крах вашего приложения, если каким-то образом нечего развернуть (ноль).
Вместо этого вам следует использовать что-то вроде if let или guard let, например
guard let cell = collectionView.cellForItem(at: indexPath) as? CardCollectionViewCell else { debugPrint("uh-oh nil in here ?"; return }
или сесли позволено:
if let cell = collectionView.cellForItem(at: indexPath) as? CardCollectionViewCell {
// your other code
} else {
// handling the case when your cell is not of type CardCollectionViewCell
}
Я думаю, что для исправления вашей ошибки:
Вы не установили свой пользовательский класс (внутри вашей раскадровки) в CardCollectionViewCell.Посмотрите пример личного проекта ниже, чтобы найти правильное поле ввода в Xcode.Пример для TableView, но для вашего CollectionView это то же самое.
- Вы должны выбрать свою пользовательскую ячейку
- Введите свое имя пользовательского класса
- Нажмите Ввод.
В противном случае ваша ячейка будет UICollectionViewCell по умолчанию.
Если вы инициализировали ячейку раскадровки с помощьюкод, проверьте, действительно ли вы инициализировали ячейку вашего пользовательского типа, а не UICollectionViewCell.