En Objective C, si vous sous-classifiez quelque chose et que vous planifiez de surcharger une méthode sur la superclasse, devez-vous déclarer à nouveau la méthode superclass dans votre sous-classe @interface? Par exemple, si vous sous-classez UIViewController (par exemple MyViewController), et que vous envisagez de remplacer "viewDidLoad" si vous incluez cette méthode dans votre déclaration MyViewController @interface, ou si vous l'implémentez simplement dans MyViewController.m?Sous-classe Objective C qui remplace une méthode dans la superclasse
Dans les exemples que j'ai rencontrés, je l'ai vu faire dans les deux sens (re-déclarer la méthode dans votre interface de sous-classe, ou ne pas re-déclarer la méthode). Il n'y a peut-être pas de différence fonctionnelle, mais quelle est la meilleure pratique?
+1 Cela a du sens. Quelqu'un avec un nom comme "Coco (a)" doit savoir ce qu'il fait. –
Vous obtenez un avertissement de définition incomplète même si la superclasse a une implémentation? Je ne le savais pas; J'ai toujours pensé que déclarer une méthode déjà présente dans la superclasse était redondant, que vous la remplaciez ou non. –
@ranReloaded Vous recevez uniquement l'avertissement si vous avez déclaré spécifiquement la méthode. Fondamentalement, lorsque vous faites cela, vous dites au compilateur que vous avez l'intention de réimplémenter la méthode et de lui demander de vous avertir si vous ne l'avez pas fait. –