The Event Loop

Other than the Tiny.m program in Chapter 4, we have not written a main( ) function for any of our applications. That’s because the PB template that was used to create our Calculator application already contained a main( ) function.

Let’s again look at the main.m file, which contains the main( ) function used by our Calculator application:

#import <Cocoa/Cocoa.h>

int main(int argc, const char *argv[])
{
    return NSApplicationMain(argc, argv);
}

Well, that’s not terribly useful. All it does is run the NSApplicationMain( ) function! What’s going on here?

When NSApplicationMain( ) runs, it performs the following steps:

  1. Processes any command-line options

  2. Sends the [NSApplication sharedApplication] class (or factory) message, which creates the NSApplicaton object, initializes the display environment, connects the application to the Window Server, and creates an autorelease pool

  3. Determines the main nib of the application (from the application plist) and then loads this nib with the owner of NSApp, the newly created NSApplication object

  4. Sends the [NSApp run] message to start up the application’s main event loop

The last step is the most important for our current discussion; it starts off the main event loop, where much of the power of Cocoa is found.

The Main Event Loop

When the NSApplication object called NSApp receives the run message, it starts the object’s main event loop. The event loop is a section of code that reads events and performs appropriate functions for those ...

Get Building Cocoa Applications: A Step by Step Guide 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.