應用程序的啟動步驟
1.執行程序入口函數main()
2.執行main()中返回的UIApplicationMain函數
3在UIApplicationMain中創建UIApplication對象 設置UIApplication代理
4開啟一個主運行循環(死循環),開始處理事件
(此時會調用delegate對象的application:didFinishLaunchingWithOptions:方法表示應用程序加載完畢)
5讀取info.plist文件加載配置信息(此時若在application:didFinishLaunchingWithOptions:中自定義了窗口顯示就不會執行main.storyboard)
若執行main.storyboard 選項 此時系統會自動創建window 并把箭頭指向的控制器作為窗口的根控制器
自定義窗口時[self.window makeKeyandVisible]做的幾件事:
1.設置window的hidden屬性為no(默認yes),然后把根控制器的view添加到窗口上(此時會調用控制器的loadView方法)
即 self,window.hidden = NO;
2.把當前窗口設置為應用程序的主窗口
self.window = [UIApplication shareApplication].keyWindow;
(可以在此方法觸發前后打印[UIApplication shareApplication].keyWindow,window屬性及window.subview驗證)
附圖: