Вы могли бы сделать что-то вроде:
var foo = {
a: 5,
b: 6,
init: function() {
this.c = this.a + this.b;
return this;
}
}.init();
Это была бы какая-то однократная инициализация объекта.
Обратите внимание, что вы фактически назначаете возвращаемое значение init()
до foo
, поэтому вы должны return this
.
Вам необходимо зарегистрировать объект пера в методе viewDidLoad():
, например,
let nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "Custom")
Кроме того, вы установили идентификатор повторного использования ячейки в раскадровке?
Есть два метода с именем dequeueReusableCell
.
Но развертывание не выполняется и приложение вылетает , tableView.dequeueReusableCell по какой-то причине возвращает nil ....
Вы используете первый, и документ четко говорит
Возвращаемое значение
Объект
blockquote>UITableViewCell
со связаннымidentifier
илиnil
, если такого объекта нет существует в очереди многоразовых ячеек.
Вы можете использовать последнее. Измените строку:
let cell = tableView.dequeueReusableCell(withIdentifier: "Custom") as! CustomCell
На:
let cell = tableView.dequeueReusableCell(withIdentifier: "Custom", for: indexPath) as! CustomCell