Подтвердить что ты не робот

Фатальная ошибка: init (coder:) не была реализована ошибка, несмотря на то, что она реализована

Я получаю сообщение об ошибке:

фатальная ошибка: init (coder:) не был реализован

Для моего пользовательского UITableViewCell. Ячейка не зарегистрирована, имеет идентификатор cell в раскадровке и при использовании dequeasreusablecell. В пользовательской ячейке у меня есть inits как:

Код:

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    print("test")
    super.init(style: style, reuseIdentifier: reuseIdentifier)
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

Но у меня все еще есть ошибка. Спасибо.

4b9b3361

Ответ 1

Замените init на метод coder:

required init?(coder aDecoder: NSCoder) {
   super.init(coder: aDecoder)
}

Собственно, если у вас есть ваша ячейка, созданная в Storyboard - я считаю, что она должна быть привязана к tableView, на которой вы пытаетесь ее создать. И вы можете удалить оба метода init, если вы не выполняете там никакой логики.

UPD: Если вам нужно добавить какую-либо логику - вы можете сделать это в awakeFromNib().

override func awakeFromNib() {
   super.awakeFromNib()
   //custom logic goes here   
}

Ответ 2

Во-первых, вам нужно вызвать метод init(coder:) суперкласса. Итак, добавьте следующую строку в required init?(coder aDecoder: NSCoder) метод required init?(coder aDecoder: NSCoder) like-

required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
}

Во-вторых, вам нужно удалить fatalError("init(coder:) has not been implemented").

Это должно работать.