iOS程序的完整启动过程分析
1.点击程序图标,打开程序
2.执行main函数,分析如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 |
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
<span style= "color: rgb(255, 0, 0);" >UIApplicationMain</span>(argc, argv, @ "UIApplication" , @ "BLAppDelegate" ); //3 、4 步骤 } } |
3.执行UIApplicationMain函数
4.创建UIApplication对象、UIApplication的delegate对象
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];
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。