iOS面試題:介紹下App啟動(dòng)的完成過程?

1. App啟動(dòng)過程
? 解析Info.plist
? 加載相關(guān)信息,例如如閃屏
? 沙箱建立、權(quán)限檢查

? Mach-O加載
? 如果是胖二進(jìn)制文件,尋找合適當(dāng)前CPU類別的部分
? 加載所有依賴的Mach-O文件(遞歸調(diào)用Mach-O加載的方法)
? 定位內(nèi)部、外部指針引用,例如字符串、函數(shù)等
? 執(zhí)行聲明為attribute((constructor))的C函數(shù)
? 加載類擴(kuò)展(Category)中的方法
? C++靜態(tài)對(duì)象加載、調(diào)用ObjC的 +load 函數(shù)

? 程序執(zhí)行
· 1.main函數(shù)
· 2.執(zhí)行UIApplicationMain函數(shù)
·   1.創(chuàng)建UIApplication對(duì)象
·   2.創(chuàng)建UIApplicationDelegate對(duì)象并復(fù)制
·   3.讀取配置文件info.plist,設(shè)置程序啟動(dòng)的一些屬性,(關(guān)于info.plist的內(nèi)容可網(wǎng)上搜索下)
·   4.創(chuàng)建應(yīng)用程序的Main Runloop循環(huán)
· 3.UIApplicationDelegate對(duì)象開始處理監(jiān)聽到的事件
·   1.程序啟動(dòng)成功之后,首先調(diào)用application:didFinishLaunchingWithOptions:方法,
·   如果info.plist文件中配置了啟動(dòng)storyboard文件名,則加載storyboard文件。
·   如果沒有配置,則根據(jù)代碼來(lái)創(chuàng)建UIWindow--->UIWindow的rootViewController-->顯示


更多:iOS面試題合集

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

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

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