Default Instances in the Main Nib File

Instances are where the action is in an Objective-C program. An app’s main nib file (MainWindow.xib, in our case) is crucially responsible for how the app comes to have any instances at all. To see this, we’ll analyze what happens as the app launches and the main nib file loads.

As the app launches, UIApplicationMain is called in main.m, which causes the UIApplication class to be instantiated to create our app’s one “shared application” instance. Now our app has its first instance, so we have something that can serve as the main nib file’s owner. So now the main nib file is loaded with the shared application instance as its owner. This causes the nib objects in the main nib file to be instantiated. By default, there are two of them:

The window
An instance of the UIWindow class. This is the container of the entire interface to be displayed to the user. In an iOS app, there is exactly one main window instance, and this is it. It is the object whose contents appear on the device’s screen (after it is sent the makeKeyAndVisible message). All other visible interface is visible purely by virtue of being a subview of this window.
The app delegate
In our app, an instance of the Empty_WindowAppDelegate class (and labeled, by default, Empty Window App Delegate). This class was defined for us as part of the project template (in the code files Empty_WindowAppDelegate.h and Empty_WindowAppDelegate.m). This class is our app’s earliest opportunity to run ...

Get Programming iOS 4 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.