從main文件開始說起程序啟動分為兩類:1.有storyboard
2.沒有storyboard
(一)有storyboard
情況下:
1.main函數(shù)
2.UIApplicationMain
- 創(chuàng)建
UIApplication
對象 - 創(chuàng)建
UIApplication
的delegate
對象
3.根據(jù)Info.plist
獲得最主要storyboard
的文件名,加載最主要的storyboard
(有storyboard
)
- 創(chuàng)建
UIWindow
- 創(chuàng)建和設(shè)置
UIWindow
的rootViewController
- 顯示窗口
(二)沒有storyboard
情況下:
1.main函數(shù)
2.UIApplicationMain
- 創(chuàng)建
UIApplication
對象 - 創(chuàng)建
UIApplication
的delegate
對象
3.delegate
對象開始處理(監(jiān)聽)系統(tǒng)事件(沒有storyboard
)
- 程序啟動完畢的時候, 就會調(diào)用代理的
application:didFinishLaunchingWithOptions:
方法 - 在
application:didFinishLaunchingWithOptions:
中創(chuàng)建UIWindow
- 創(chuàng)建和設(shè)置
UIWindow
的rootViewController
- 顯示窗口