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程序启动原理的主要内容,如果未能解决你的问题,请参考以下文章

iOS程序启动原理

iOS程序启动原理的理解

iOS开发UI篇—程序启动原理和UIApplication

iOS中的应用启动原理

iOS开发UI篇—程序启动原理和UIApplication

iOS程序启动原理是什么