Je reçois un message d'erreur:
erreur fatale: init (codeur :) n'a pas été implémenté
Pour ma coutume UITableViewCell
. La cellule n'est pas enregistrée, a l'identifiant cellule dans le storyboard et lors de l'utilisation de dequeasreusablecell. Dans la cellule personnalisée, j'ai les inits comme:
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")
}
Mais j'ai toujours l'erreur. Merci.
Remplacez votre méthode init par codeur:
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
En fait, si votre cellule est créée dans Storyboard, je pense qu’elle devrait être attachée à tableView sur laquelle vous essayez de la créer. Et vous pouvez supprimer vos deux méthodes init si vous n’exécutez aucune logique là-bas.
UPD : Si vous devez ajouter une logique - vous pouvez le faire dans la méthode awakeFromNib ().
override func awakeFromNib() {
super.awakeFromNib()
//custom logic goes here
}
Tout d'abord, vous devez appeler la méthode 'init(coder:)
"de la super classe. Donc, ajoutez la ligne suivante dans votre méthode required init?(coder aDecoder: NSCoder)
comme-
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
Deuxièmement, vous devez supprimer l'instruction fatalError("init(coder:) has not been implemented")
.
Cela devrait fonctionner.