Почему удаление ячейки из UICollectionView приводит к сбою приложения в iOS 13? - PullRequest
1 голос
/ 23 сентября 2019

Я обновил сегодня до Xcode 11 с 10.3 и запустил свое приложение на симуляторе iPhone под управлением iOS 13. Сразу же приложение упало, выдав следующую ошибку:

Завершение работы приложения из-за необработанного исключения 'NSInternalInconsistencyException ', причина:' не удалось удалить из очереди представление вида: UICollectionElementKindCell с идентификатором EventCell - необходимо зарегистрировать перо или класс для идентификатора или подключить ячейку прототипа в раскадровке '

У меня естьФайл EventCell.xib и файл EventCell.swift с классом EventCell.Теперь я уже позвонил collectionView.register() и зарегистрировал свой Nib в viewDidLoad(), фактически этот код продолжает работать на моем физическом устройстве iOS 12.4 и на симуляторах iOS 12.2.Я не могу понять, что изменилось в iOS 13 на UICollectionView, так как код успешно компилируется, но во время выполнения происходит сбой.

Здесь ячейка зарегистрирована внутри viewDidLoad:

// MARK: UICollectionView
collectionView.register(UINib(nibName: "EventCell", bundle: nil), forCellWithReuseIdentifier: "EventCell")
collectionView.contentInset = UIEdgeInsets(top: 65, left: 0, bottom: 0, right: 0)
collectionView.scrollIndicatorInsets = UIEdgeInsets(top: 65, left: 0, bottom: 0, right: 0)
collectionView.backgroundColor = applicationScheme.colorScheme.backgroundColor

Это код, который создает ячейку:

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "EventCell", for: indexPath) as! EventCell

    cell.imageView.image = UIImage(named: "fill")
    cell.titleLabel.text = "Titolo di prova"
    cell.dateLabel.text = "00/00/0000"
    cell.timeLabel.text = "00:00"

    return cell
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...