O'Reilly logo

Programming iOS 4 by Matt Neuburg

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Swamped by Events

Code that contains multiple entry points — methods that are called through events — can be hard to read, to understand, to maintain, and to debug, even when your classes are relatively small and simple. As you develop a class that’s intended to receive more than one or two events, I recommend that you comment your code clearly, so that you know what methods you think Cocoa will be calling and why and when.

To illustrate the problem, I’ll list some of the methods in a typical class of mine. This is a small class in a small, simple app. It is a UIViewController subclass; in point of fact, it is a UITableViewController subclass, so it serves not only to load and configure the table view, but also as the table view’s delegate and data source. This is an iOS 4 app and therefore participates in multitasking. The app works with the built-in music library and music player, so there are also some notifications from the MPMusicPlayerController class. I omit the class’s designated initializer and dealloc, as well as various utility methods called by the methods I list.

Here are the methods:

loadView

An overridden UIViewController method. Called by Cocoa just after the class is instantiated. Here we create the table view and perform various other view initializations. We also add ourself as observer for four notifications:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(prepareToForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required