iOS程序的完整启动过程分析

 

1.点击程序图标,打开程序

2.执行main函数,分析如下:

int main(int argc, char * argv[])
{
    @autoreleasepool {
        /*
         argc: 系统或者用户传入的参数个数
         argv: 系统或者用户传入的实际参数
         */
        // return UIApplicationMain(argc, argv, nil, NSStringFromClass([NJAppDelegate class]));
        
        // return UIApplicationMain(argc, argv, @"UIApplication", NSStringFromClass([BLAppDelegate class]));
        
        /*
         1.根据传入的第三个参数创建UIApplication对象
         2.根据传入的第四个产生创建UIApplication对象的代理
         3.设置刚刚创建出来的代理对象为UIApplication的代理
         4.开启一个事件循环
         */
         return UIApplicationMain(argc, argv, @"UIApplication", @"BLAppDelegate");  //3 、4 步骤 
    }
}

 

3.执行UIApplicationMain函数

4.创建UIApplication对象、UIApplicationdelegate对象

5.开启事件循环监听系统事件

 

6.程序加载完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法

1> 创建窗口对象

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

2> 创建控制器对象

self.viewController = [[BLViewController alloc] initWithNibName:@"BLViewController" bundle:nil];

3> 设置窗口的根控制器

self.window.rootViewController = self.viewController;

4> 让窗口成为主窗口、并且可见

[self.window makeKeyAndVisible];

posted @ 2014-06-06 13:05  bao9107  阅读(494)  评论(0编辑  收藏  举报