Cocoa: int main function

Arthur Skirvin picture Arthur Skirvin · Jan 21, 2010 · Viewed 7.7k times · Source

I'm curious, what role does the int main function play in a Cocoa program? Virtually all of the sample code I've been looking at has only the following code in main.m:

#import <Cocoa/Cocoa.h>


int main(int argc, char *argv[])
{

    return NSApplicationMain(argc,  (const char **) argv);
}

What exactly is this doing, and where does the program actually start stepping through commands? It seems my conceptions need readjustment.

Answer

Brandon Bodnar picture Brandon Bodnar · Jan 21, 2010

Since a Cocoa project starts like any other, the entry point for the Operating system is main. However the Cocoa Architecture is constructed to actually start the processing of your program from NSApplicationMain, which is responsible for loading the initial window from your application and starting up the Events loop used to process GUI events.

Apple has a very in depth discussion on this under the Cocoa Fundamentals Guide : The Core Application Architecture on Mac OS X