關(guān)于應(yīng)用程序啟動(dòng)的幾個(gè)問題

應(yīng)用程序的啟動(dòng)步驟

1.執(zhí)行程序入口函數(shù)main()

2.執(zhí)行main()中返回的UIApplicationMain函數(shù)

3在UIApplicationMain中創(chuàng)建UIApplication對象 設(shè)置UIApplication代理

4開啟一個(gè)主運(yùn)行循環(huán)(死循環(huán)),開始處理事件

(此時(shí)會(huì)調(diào)用delegate對象的application:didFinishLaunchingWithOptions:方法表示應(yīng)用程序加載完畢)

5讀取info.plist文件加載配置信息(此時(shí)若在application:didFinishLaunchingWithOptions:中自定義了窗口顯示就不會(huì)執(zhí)行main.storyboard)

若執(zhí)行main.storyboard 選項(xiàng) 此時(shí)系統(tǒng)會(huì)自動(dòng)創(chuàng)建window 并把箭頭指向的控制器作為窗口的根控制器

自定義窗口時(shí)[self.window makeKeyandVisible]做的幾件事:

1.設(shè)置window的hidden屬性為no(默認(rèn)yes),然后把根控制器的view添加到窗口上(此時(shí)會(huì)調(diào)用控制器的loadView方法)

即 self,window.hidden = NO;

2.把當(dāng)前窗口設(shè)置為應(yīng)用程序的主窗口

self.window = [UIApplication shareApplication].keyWindow;

(可以在此方法觸發(fā)前后打印[UIApplication shareApplication].keyWindow,window屬性及window.subview驗(yàn)證)

附圖:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容