程序啟動原理

程序啟動原理

一.首先找到程序入口,執行main函數

main -> UIApplicationMain

intmain(intargc,char* argv[]) {@autoreleasepool{// 第三個參數:UIApplication類名或者子類的名稱 nil == @"UIApplication"http:// 第四個參數:UIApplication的代理的代理名稱// NSStringFromClass:把類名轉化字符串// NSStringFromClass好處:1.有提示功能 2.避免輸入錯誤returnUIApplicationMain(argc, argv,nil,NSStringFromClass([AppDelegate class]));? ? }}

二.UIApplicationMain底層做事情

1.創建UIApplication對象

2.創建UIApplication的代理對象,而且給UIApplication對象代理屬性賦值

3.開啟主運行循環,作用接收事件,讓程序一直運行

4.加載info.plist,判斷下有木有指定main.storyboard,如果指定就會去加載

UIApplicationMain函數會根據principalClassName創建UIApplication對象,根據delegateClassName創建一個delegate對象,并將該delegate對象賦值給UIApplication對象中的delegate屬性

UIApplicationMain 接著會建立應用程序的Main Runloop(事件循環),進行事件的處理(首先會在程序完畢后調用delegate對象的application:didFinishLaunchingWithOptions:方法) 程序正常退出時UIApplicationMain函數才返回

圖解


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容