程序启动过程:
1. 加载可执行文件。
2.加载动态链接库,并做符号绑定。
3.执行+load方法、attribute((constructor))修饰的函数。
4.执行main函数,进而执行main里面的UIApplicationMain函数。
5.通过系统或用户传入的参数初始化UIApplication(创建UIApplication对象 -> 创建Appdelegate -> 建立应用程序的事件循环 (Main Runloop) ,来监听UIApplication的生命周期)。
6.随之会调用AppDelegate的didFinishLaunching方法,表示已经启动。
UIApplication:
1.UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。
2.每一个应用都有自己的UIApplication对象,是一个单例,不能手动创建。
3.利用UIApplication对象,能在应用层面上操作控制整个APP。