首页 > 代码库 > iOS程序的完整启动过程分析
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];
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。