Skip to Content
Building Cocoa Applications: A Step by Step Guide
book

Building Cocoa Applications: A Step by Step Guide

by Simson Garfinkel, Michael Mahoney
May 2002
Intermediate to advanced
646 pages
18h 57m
English
O'Reilly Media, Inc.
Content preview from Building Cocoa Applications: A Step by Step Guide

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 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Swift Development with Cocoa

Swift Development with Cocoa

Paris Buttfield-Addison, Jonathon Manning, Tim Nugent
Cocoa Design Patterns

Cocoa Design Patterns

Erik M. Buck, Donald A. Yacktman

Publisher Resources

ISBN: 0596002351Catalog PageErrata