60 votes

Convention `[super viewDidLoad]`

Je vois un exemple de code avec [super viewDidLoad] appelé avant votre implémentation et après votre implémentation.

Je sais qu'il n'est pas toujours nécessaire d'appeler le super (comme on l'a vu dans de nombreuses autres discussions). Lorsque vous l'appelez, est-ce qu'il est attendu avant ou après le code ?

Cela pourrait avoir des conséquences en fonction de la mise en œuvre de Super. Cependant, vous ne devriez pas avoir à connaître l'implémentation de super pour écrire la vôtre.

Bien entendu, cela s'applique à toutes les méthodes déléguées des contrôleurs de vue (willAppear, didAppear, etc...).

Qu'en pensez-vous ?

97voto

Jason Coco Points 52303

Ma règle de base est la suivante : si vous faites quelque chose en rapport avec l'initialisation, appelez toujours la méthode de la super-classe en premier (si vous l'appelez). Cela permet à la super-classe d'effectuer les réglages dont vous pourriez avoir besoin plus tard dans votre méthode. Si vous faites quelque chose en rapport avec la destruction, appelez la méthode de la super-classe en dernier. Cela permet de s'assurer que vous pouvez compter sur l'état de l'objet tout au long de l'exécution de votre méthode. Enfin, tout autre cas doit être examiné au cas par cas. Par exemple, si vous traitez un événement, vous voudrez probablement traiter l'événement en premier, et n'invoquer la méthode de la super-classe que si vous avez choisi de ne pas traiter l'événement ou si vous l'avez modifié d'une manière ou d'une autre et que vous voulez le transmettre le long de la chaîne d'événements.

0voto

Kaushik Points 24

Supposons que vous ayez deux classes, un parent et un enfant. L'enfant hérite de la classe Parent. Ils ont une méthode appelée greet qui renvoie une chaîne de caractères.

Voici à quoi ressemble la méthode parentale :

Code :

-(NSString *)greet {
 return @"Hello";
}

Nous voulons que l'enfant apprenne de ses parents. Nous utilisons donc super pour dire "saluez comme maman", mais avec nos propres petits ajouts.

Code : // Hérite de Parent

-(NSString *)greet {
NSString *parentGreeting = [super greet];
return [parentGreeting stringByAppendingString:@", Mommy"]
}

Ainsi, le parent salue "Bonjour" et l'enfant salue "Bonjour, maman". Plus tard, si nous modifions le message d'accueil du parent pour qu'il ne renvoie que "Bonjour", les deux classes seront affectées et vous aurez "Bonjour" et "Bonjour, maman".

super est utilisé pour appeler une méthode définie par une superclasse. Il est utilisé pour accéder aux méthodes qui ont été surchargées par les sous-classes afin que la classe puisse envelopper son propre code autour d'une méthode que sa classe mère implémente. C'est très pratique si vous faites un quelconque travail d'héritage.

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