Не удалось загрузить пользовательскую ячейку из очереди многократного использования UITableViewCell

Вы могли бы сделать что-то вроде:

var foo = {
   a: 5,
   b: 6,
   init: function() {
       this.c = this.a + this.b;
       return this;
   }
}.init();

Это была бы какая-то однократная инициализация объекта.

Обратите внимание, что вы фактически назначаете возвращаемое значение init() до foo, поэтому вы должны return this.

0
задан Faiz Fareed 23 March 2019 в 18:59
поделиться

2 ответа

Вам необходимо зарегистрировать объект пера в методе viewDidLoad():, например,

let nib = UINib(nibName: "CustomTableViewCell", bundle: nil)

tableView.register(nib, forCellReuseIdentifier: "Custom")

Кроме того, вы установили идентификатор повторного использования ячейки в раскадровке?

0
ответ дан Faiz Fareed 23 March 2019 в 18:59
поделиться

Есть два метода с именем dequeueReusableCell.

Но развертывание не выполняется и приложение вылетает , tableView.dequeueReusableCell по какой-то причине возвращает nil ....

Вы используете первый, и документ четко говорит

Возвращаемое значение

Объект UITableViewCell со связанным identifier или nil, если такого объекта нет существует в очереди многоразовых ячеек.


Вы можете использовать последнее. Измените строку:

let cell = tableView.dequeueReusableCell(withIdentifier: "Custom") as! CustomCell

На:

let cell = tableView.dequeueReusableCell(withIdentifier: "Custom", for: indexPath) as! CustomCell
0
ответ дан OOPer 23 March 2019 в 18:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: