程序啟動(dòng)過程:
1. 加載可執(zhí)行文件。
2.加載動(dòng)態(tài)鏈接庫(kù),并做符號(hào)綁定。
3.執(zhí)行+load方法、attribute((constructor))修飾的函數(shù)。
4.執(zhí)行main函數(shù),進(jìn)而執(zhí)行main里面的UIApplicationMain函數(shù)。
5.通過系統(tǒng)或用戶傳入的參數(shù)初始化UIApplication(創(chuàng)建UIApplication對(duì)象 -> 創(chuàng)建Appdelegate -> 建立應(yīng)用程序的事件循環(huán) (Main Runloop) ,來(lái)監(jiān)聽UIApplication的生命周期)。
6.隨之會(huì)調(diào)用AppDelegate的didFinishLaunching方法,表示已經(jīng)啟動(dòng)。
UIApplication:
1.UIApplication對(duì)象是應(yīng)用程序的象征,一個(gè)UIApplication對(duì)象就代表一個(gè)應(yīng)用程序。
2.每一個(gè)應(yīng)用都有自己的UIApplication對(duì)象,是一個(gè)單例,不能手動(dòng)創(chuàng)建。
3.利用UIApplication對(duì)象,能在應(yīng)用層面上操作控制整個(gè)APP。