所有的cocoa应用程序都会有一个而且仅有一个NSApplication的对象,这个对象负责程序运行过程中所有的事件获取,以及分发到对应的接受对象来处理。
Mac OS X下应用程序启动时,首先会找到入口函数int main(int argc, char *argv[]),如果程序中没有这个函数,编译连接时会报错
Undefined symbols:
"_main", referenced from:
在main函数除了做一些全局的初始化和定义以外,main函数的结尾必须要调用函数NSApplicationMain(argc, (const char **) argv);这个函数会依次完成三件事:
// NSApplicationMain伪代码
void NSApplicationMain(int argc, char*argv[]) {
[NSApplication sharedApplication];
[NSBundle loadNibNamed:@"myMain" owner:NSApp];
[NSApp run];
}
1. 创建应用程序的全局实例对象NSApp。
(1). 首先调用sharedApplication函数,如果已经存在了一个该应用程序的NSApp对象,直接返回,如果不存在,则创建一个,主要是完成与window server的连接,和一些初始化工程。
(2). NSApp对象在