Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

should I call the [super superMethod] after my own code or before it?

[sorry for my weak english]

The question is simple (but I have troubles in expressing it and finding it in google)...

Should I (in all similar cases, when I override the super method, not only this one) use:

- (void)viewDidLoad
{
    /*
       my code
     */

    [super viewDidLoad];
}

or

- (void)viewDidLoad
{
    [super viewDidLoad];

    /*
       my code
     */
}

or does it depend?

like image 281
fir Avatar asked Sep 16 '11 07:09

fir


2 Answers

in some cases the order will not matter. in others, order is critical.

some generalizations which will help:

  • when you are constructing a portion of the object's state (viewDidLoad and init...), call through super first.
  • when you are destructing a portion of the object's state (viewDidUnload or dealloc), call through super last.
  • if i am certain that the order does not matter, then i just call through super first for easier organization.
like image 196
justin Avatar answered Nov 04 '22 13:11

justin


It depends on the method; e.g. -[super init] (before) vs -[super dealloc] (after).

like image 29
Wevah Avatar answered Nov 04 '22 14:11

Wevah