41 votes

Dois-je appeler [super awakeFromNib] ?

Si j'implémente ma propre version de awakeFromNib Je dois appeler [super awakeFromNib] à la fin de ma méthode ?

93voto

MattDiPasquale Points 23842

awakeFromNib pour UIKit (iOS) :

Vous devez appeler la super implémentation de awakeFromNib pour donner aux classes parentes la possibilité d'effectuer toute initialisation supplémentaire dont elles ont besoin. Bien que l'implémentation par défaut de cette méthode ne fasse rien, de nombreuses classes UIKit fournissent des implémentations non vides. Vous pouvez appeler la super implémentation à tout moment au cours de votre propre méthode awakeFromNib.

awakeFromNib pour AppKit (Mac) :

(ce n'est plus vrai, si vous utilisez OS X 10.6 ou plus)

Vous ne devez appeler l'implémentation super de awakeFromNib que si vous êtes certain que votre superclasse fournit une implémentation. Comme le kit d'application ne fournit pas d'implémentation par défaut de la méthode awakeFromNib, l'appel de super entraîne une exception si la classe parente ne l'implémente pas. Les classes dont la classe parente immédiate est NSObject ou NSView n'ont pas besoin d'appeler l'implémentation de super. Pour toutes les autres classes, vous pouvez utiliser la méthode instancesRespondToSelector : class de NSObject pour déterminer si la classe parente répond à awakeFromNib et appeler la méthode si c'est le cas.

7voto

Peter Hosey Points 66275

La documentation couvre cela parfaitement.

Si vous vouliez poser une question sur Cocoa Touch, vous n'avez pas cette chance : la documentation de UIKit ne répond pas à la question de manière définitive, à ma connaissance. Le mieux que je puisse suggérer est de suivre les mêmes règles que pour Cocoa.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X