On Jul 5, 2009, at 5:34 AM, DKJ wrote:

In fact I'm now going through my code line-by-line, checking all the alloc, retain, copy etc. statements. While doing so I've come across another thing that puzzles me.

Xcode very kindly provides template code when I create new files for classes like UIViewController. (But this is still a Cocoa question.) In the template code for viewDidLoad, it provides [super viewDidLoad].

But there is no corresponding [super viewDidUnload] in the template code for viewDidUnload. Should it be there anyway?

dkj

My guess is that it should, but guessing is not necessary. Just add it, because it won't hurt if it isn't needed and it will do the right thing if it is. Not adding it, on the other hand, might do the wrong thing if it is needed. You might also want to file a bug report, pointing out the apparent discrepancy.

Just as an aside, I typically write my code using the "socks and shoes" mentality. You put your socks in first and your shoes last, but you take off your shoes first and your socks last. So, I usually write

- (void) viedDidLoad
{
    [super viewDidLoad];

    // load my stuff
}

- (void) viedDidUnload
{
    // unload my stuff

    [super viewDidUnload];
}

Note how calling the super implementation comes first in viewDidLoad but last in viewDidUnload. I use the same approach for other pairs of closely related methods, such as viewWillAppear/viewWillDisappear and viewDidAppear/viewDidDisappear.

Wagner
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to