標籤:section 儲存資料 建立 前台 調用 size 準備 視窗 style
應用程式App啟動分兩類:1. 有storyboard 2. 沒有storyboard storyboard :
有storyboard情況下
1.執行 main 函數;
2.執行UIApplicationMain函數
* 建立UIApplication 對象;
* 建立UIApplication 的 delegate 對象;
(注: UIApplicationMain 函數的第三個參數就是 UIApplication 的名稱,如果指定為 nil, 它會預設為 UIApplication, UIApplicationMain 函數的第四個參數就是 UIApplication 的代理 )
3. 開啟一個主運行迴圈,保證應用程式不會退出
4. 根據 Info.plist 獲得 Main.storyboard 的檔案名稱, 載入 Main.storyboard(有storyboard的情況)
* 建立UIWindow;
* 建立和設定UIWindow 的 rootViewController
* 顯示視窗
沒有storyboard情況下 :
1.main 函數;
2.UIApplicationMain
* 建立UIApplication 對象;
* 建立UIApplication 的 delegate 對象
(注: UIApplicationMain 函數的第三個參數就是 UIApplication 的名稱,如果指定為 nil, 它會預設為 UIApplication, UIApplicationMain 函數的第四個參數就是 UIApplication 的代理 )
3. 開啟一個主運行迴圈,保證應用程式不會退出
3.delegate 對象開始處理(監聽)系統事件 (沒有storyboard的情況)
* 程式啟動完畢的時候,就會調用代理的 application:didFinishLaunchingWithOptions: 方法; * 在application:didFinishLaunchingWithOptions: 方法中建立UIWindow;* 建立和設定UIWindow 的 rootViewController;
* 顯示視窗;
應用的生命週期 :
-(BOOL)application:(UIApplication )application willFinishLaunchingWithOptions: (NSDictionary )launchOptions 告訴代理進程啟動但還沒進入狀態儲存
-(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions: (NSDictionary )launchOptions 告訴代理啟動基本完成程式準備開始運行
-(void)applicationWillResignActive:(UIApplication *)application 當應用程式將要入非活 動狀態執行,在此期間,應用程式不接收訊息或事件,比如來電話了
-(void)applicationDidBecomeActive:(UIApplication *)application 當應用程式入活動狀態 執行,這個剛好跟上面那個方法相反
-(void)applicationDidEnterBackground:(UIApplication *)application 當程式被推送到後台 的時候調用。所以要設定後台繼續運行,則在這個函數裡面設定即可
-(void)applicationWillEnterForeground:(UIApplication *)application 當程式從後台將要重 新回到前台時候調用,這個剛好跟上面的那個方法相反。
-(void)applicationWillTerminate:(UIApplication *)application 當程式將要退出是被調 用,通常是用來儲存資料和一些退出前的清理工作。
應用程式App的啟動過程