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:
makeKeyAndVisiblemessage). All other visible interface is visible purely by virtue of being a subview of this window.