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创建一个代理对象,设置为UIApplication的delegate
6> 开启一个消息循环,监听所有的系统事件(程序启动完毕、程序进入前台、程序进入后台、程序接收内存警告)
7> 监听到对应的事件,就会通知代理,调用代理相应的方法处理系统事件
8> 程序启动完毕后,就会调用代理的application:didFinishLaunchingWithOptions:方法
* 创建窗口
* 设置窗口的根控制器
* 显示窗口(成为主窗口)