2 votes

Lorsque vous remplacez initWithCoder, est-il toujours nécessaire d'appeler [super initWithCoder: coder]

Dans ce code, je charge un Contrôleur de Vue (et la Vue associée) à partir d'un fichier .xib :

-(id)initWithCoder:(NSCoder *)coder
    {
    // ajoutez du code d'initialisation personnalisé ici
    [super initWithCoder:coder];
    return self;
    }

Cela fonctionne avec succès, mais je ne comprends pas vraiment ce que la ligne [super initWithCoder:coder] accomplit. Est-ce qu'elle initialise mon Contrôleur de Vue après que ma Vue a été initialisée ?

Veuillez être aussi explicite que possible lors de l'explication. Merci.

3voto

Brandon Bodnar Points 6426

Votre classe est une sous-classe de UIViewController. L'appel indique à votre super classe (UIViewController) d'effectuer les étapes nécessaires pour que vous puissiez effectuer vos étapes d'initialisation. Ceci consiste à configurer toutes les propriétés fournies par UIViewController ou à s'abonner à des notifications nécessaires pour que UIViewController puisse accomplir son travail.

Il est conseillé, presque à chaque fois que vous remplacez une méthode de la super classe, d'appeler la méthode de la super classe en plus des étapes que vous devez effectuer.

Édition : Aussi, si vous n'avez rien à faire dans une méthode fournie par la super classe, vous pouvez simplement la laisser de côté et la méthode de la super classe sera utilisée à la place. Dans ce cas, je ne fournirais pas la méthode initWithCoder: sauf s'il y a du code que vous devez exécuter en plus de ce que vous avez montré.

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