Sous-classe Objective C qui remplace une méthode dans la superclasse
En Objective-C, si vous êtes sous-classement de quelque chose, et de l'intention de remplacer une méthode de la super-classe, si vous re-déclarer la méthode de superclasse dans votre sous-classe @interface?
Par exemple, si vous êtes sous-classement UIViewController (par exemple MyViewController), et vous êtes planification pour remplacer "viewDidLoad" devriez-vous inclure cette méthode dans votre MyViewController @interface de déclaration, ou tout simplement le mettre en œuvre dans MyViewController.m?
Dans les exemples que j'ai rencontré, je l'ai vu faire tant de façons de (re-déclarer la méthode dans votre sous-classe de l'interface, ou pas de re-déclarer la méthode). Il n'y a aucune différence fonctionnelle, mais quelle est la meilleure pratique?
source d'informationauteur Andy White
Vous devez vous connecter pour publier un commentaire.
J'ai souvent déclarer les méthodes que j'ai l'intention de remplacer dans le secteur public comme en-tête ou au moins dans un privé de la catégorie. L'avantage de ceci est que vous obtenez une incomplètes définition de la classe d'avertissement si vous oubliez de fait remplacer la méthode... ce qui est bien pratique de temps en temps.
Comme pour quand à placer dans l'en-tête public, c'est assez subjectif, et probablement jusqu'à ce que vous, votre équipe de codage styles. Normalement, je ne redeclare une méthode dans l'en-tête public si j'ai l'intention de changer radicalement de ce que la méthode va faire ou si j'ai l'intention de ne pas invoquer la super-classe de la version de la méthode.
Souvent, les gens utilisent l'en-tête comme documents pour la classe (et des outils comme AutoDoc). Évidemment, si vous êtes à la suite de cette convention, le seul choix raisonnable est d'inclure redéfini les méthodes de sorte que vous pouvez expliquer ce que vous avez fait avec eux. Autrement vos documents pour la classe sont soit incomplètes ou dispersés aux quatre coins de la terre.
Mais si nous sommes juste à copier-coller de la déclaration, je ne suis pas personnellement aime redeclare méthodes. Ce n'est pas SEC et il gonfle votre en-tête inutilement. Moins de code est un code de meilleure qualité.