Dans l'exemple ScrollView d'Apple, ils n'appellent pas cela. J'ai toujours pensé que c'était un must . Pourquoi devrais-je appeler quand même?
Réponses
Trop de publicités?Si vous substituez la méthode, vous devez quand même appeler la méthode dans le super. Même si la super classe ne fait rien avec elle aujourd'hui, Apple pourrait un jour changer la mise en œuvre et votre code cesserait mystérieusement de fonctionner. Si vous n'avez vraiment pas besoin de faire quoi que ce soit avec cette méthode, laissez-le en dehors de votre code, et la méthode de super fonctionnera comme d'habitude, sans aucune intervention de votre part.
Non, vous n'avez pas besoin de les appeler [super viewDidLoad]. Edit: Mais lire ci-dessous, parce que je pense que vous avez certainement doit.
Soyons réalistes ici: Apple ne va pas casser des milliers d'applications, y compris celles fondées sur leur publiés exemple de code, en décidant d'un événement qu'ils ne sont pas actuellement la manutention soudain besoin de faire quelque chose que les développeurs peuvent ou peuvent ne pas vouloir s'arrêter et il est essentiel que si vous n'avez pas besoin d'comportement différent vous arrêtez pas le cas.
Edit: après Avoir vu la façon dont Apple gère la compatibilité pour une année supplémentaire, je recommande d'apprendre et d'utiliser le bon modèle. Bien que je doute de votre application binaires jamais arrêter brusquement de travail, il est clair que l'iPhone détecte les SDK de votre binaire a été construit contre et modifie certains OS comportement sur cette base.
Apple pourrait un jour besoin d'un modèle particulier être suivie sur l'avenir du SDK. Ce ne serait pas vous affecter jusqu'à ce que vous reconstruire avec le dernier Xcode + SDK, mais alors il faudrait obtenir ces pauses, sans aucune modification du code source. D'apprendre et de suivre le modèle pour être sûr.
Comme Markus le dit, UIViewController ne fait rien dans sa méthode viewDidLoad, vous n'avez donc pas à l'appeler. Cependant, c'est une bonne habitude à prendre, au cas où vous modifieriez votre structure d'héritage et que soudainement, la classe qui héritait de UIViewController hérite désormais de quelque chose qui fait quelque chose dans la méthode viewDidLoad.
Vous n'êtes pas obligé d'appeler le [super viewDidLoad]
Autant que je sache, viewDidLoad dans la super-classe (UIViewController) est uniquement une fonction vide appelée lorsque le ViewController est initialisé avec un fichier nib.
Ainsi, si vous devez effectuer une initialisation, vous devez remplacer cette fonction et y placer votre code.