ios程序的启动过程

 1> 执行main函数

 2> main函数内部执行UIApplicationMain函数

 3> UIApplicationMain函数有4个参数

 * 2个参数:int argc, char * argv[] 是标准C语言main函数参数,交给系统处理即可(运行程序时所附带的参数)

 * NSString *principalClassName : 传入UIApplication或者子类的名称,nil默认就是UIApplication

 * NSString *delegateClassName : 代理的类名

 4> 根据principalClassName创建一个UIApplication对象

 5> 根据delegateClassName创建一个代理对象,设置为UIApplicationdelegate

 6> 开启一个消息循环,监听所有的系统事件(程序启动完毕、程序进入前台、程序进入后台、程序接收内存警告)

 7> 监听到对应的事件,就会通知代理,调用代理相应的方法处理系统事件

 8> 程序启动完毕后,就会调用代理的application:didFinishLaunchingWithOptions:方法

 * 创建窗口

 * 设置窗口的根控制器

 * 显示窗口(成为主窗口)

原文地址:https://www.cnblogs.com/hkyangvip/p/3618123.html