1.main.m
int retVal =UIApplicationMain(argc, argv, nil, @"CoolMathAppDelegate");
int retVal = UIApplicationMain(argc, argv, nil, nil);
如果是nil,就自动加载 Info.plist 文件中的 “Main nib file base name”指定的nib文件。
2.当加载nib文件时,会初始化nib文件里的所有object。
![](https://img-my.csdn.net/uploads/201301/15/1358252504_9695.png)
3. 在上图中会初始化 “Tab Bar Controller” "App controller" "window".
"file‘s owner"指的就是nib实例本身,在这里需要设定它的类型为“UIApplication”。
“file‘s owner"”需要指定delegate,在本工程中,就指定 "App controller" 为它的delegate,这样程序就开始运行 "App controller" 指定的类的AppDelegate.m文件中的代码。
4.在AppDelegate.h文件中,声明了“window”为其outlet,这样就把“windows”和AppDelegate关联了起来。
5.“windows”中指定“Tab Bar Controller”为其rootview controller。
因此整个运行过程看起来像这样:
main.m-----第4个参数为nil----->加载info.plist---->加载MainWindow.xib----->
指定app delegate为MainWindow.xib的delegate--------->
加载app delegate的outlet window------windows的rootview controller为tab bar controller------>
加载tab bar controller----------->tab bar 中每个view controller