iOS程序启动原理
Posted 纠结的哈士奇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS程序启动原理相关的知识,希望对你有一定的参考价值。
关于ios的启动过程,之前也是一知半解,查了一些资料,总结如下。
首先,放一张流程图。摘自网络图片(侵权删)
1.main函数
2.UIApplicationMain
* 创建UIApplication对象
* 创建UIApplication的delegate对象
--------没有storyboard---------
3.delegate对象开始处理(监听)系统事件(没有storyboard)
* 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
* 在application:didFinishLaunchingWithOptions:中代码创建UIWindow
* 创建和设置UIWindow的rootViewController
* 显示窗口
--------有storyboard---------
3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)
* sb创建UIWindow
* 创建和设置UIWindow的rootViewController
* 显示窗口
这里可能有个误区:
不管设不设置Main Interface,代码都会走application:didFinishLaunchingWithOptions方法,只是设置uiwindow的方式有区别而已。
1、有设置,系统会直接取plist设置的界面控制器。
2、不设置,系统会在application:didFinishLaunchingWithOptions这里查找uiwindow。
以上是关于iOS程序启动原理的主要内容,如果未能解决你的问题,请参考以下文章