OC第一天-Xcode、工程組成及運行狀態,oc-xcode
Xcode 中iOS工程模版:
1.Application類型:
- Master-detail Application. 可以構建樹形結構導航模式應用,產生的程式碼中包含了導航控制器和表示圖控制器。(表示圖控制器指的是導航控制器裡的介面);
- Game. 構建基於iOS的遊戲應用;
- Page-Based Application. 平鋪導航,類似於電子書效果;
- Tabbed Applecation. 構建標籤導航模式應用,產生的程式碼中包含了標籤控制器和標籤欄。
- Single View Application. 構建簡單的單個視圖應用。
2.Framework & Library類型
- Cocoa Touch Framework:自訂應用於UIKit架構;
- Cocoa Touch Library:可建立基於Foundation架構的靜態庫;
3.Other類型
- 可構建在應用程式內購買內容包盒空工程——內建收費功能的應用。
建立工程中的主要組分:AppDelegate和ViewController
- AppDelegate:繼承UIResponder類,並實現UIApplicationDelegate委託協議;是應用程式的委派物件,在這個類中繼承的一系列方法在應用生命週期的不同階段會被回調。
應用周期:
a.程式的生命週期是指應用程式啟動到應用程式結束整個階段的全過程
b.每一個IOS應用程式都包含一個UIApplication對象,IOS系統通過該UIApplication對象監控應用程式生命週期全過程
c.每一個IOS應用程式都要為其UIApplication對象指定一個代理對象,並由該代理對象處理UIApplication對象監測到的應用程式生命週期事件。
- ViewController:視圖控制器類,在工程中就是根視圖和使用者事件控制類。
iOS應用的5種狀態:
- Not Running (非運行狀態)。應用沒有運行或被系統終止。
- Inactive(前台非使用中)。應用正在進入前台狀態,但還不能接收事件處理。
- Active(前台活動狀態)。應用進入前台狀態,能接收事件處理。
- Background(後台狀態)。應用進入後台狀態,依然能夠執行代碼。如果有可執行檔代碼,則執行代碼,若沒有活著執行完畢,會進入掛起狀態。
- Suspended(掛起狀態)。處於此狀態,應用將不執行代碼。若記憶體不足,應用會被終止。
iOS運行狀態的類比調用:
- Not Running-->Inactive: 調用application:didFinishLaunchingWithOptions:方法 發出UIApplicationDidFinishLaunchingNotification通知。
- Inactive-->Active: 調用applicationDidBecomeActive:方法 發出UIApplicationDidBecomeActiveNotification通知。
2. 應用處於運行狀態,點擊Home鍵或者其他的應用導致當前應用中斷:(根據產品屬性檔案中的相關屬性Application does not run in background 是與否 控制兩種狀態)
1>可以在後台運行或者掛起: Active-->Inactive-->Background-->Suspended
- Active-->Inactive: 調用applicationWillResignActive: 方法,發出UIApplicationWillResignActiveNotification通知。
- Inactive-->Background: 應用在非使用中進入後台。
- Background-->Suspended:調用applicationDidEnterBackground:方法 發出UIApplicationDidEnterBackgroundNotification通知。
2>不可以在後台運行或掛起:Active-->Inactive-->Background-->Suspended-->Not running
- Active-->Inactive:見上
- Inactive-->Background:應用在非使用中進入後台。
- Background-->Suspended:調用applicationDidEnterBackground:方法 發出UIApplicationDidEnterBackgroundNotification通知。
- Suspended-->Not running:調用applicationWillTerminate:方法 發出UIApplicationWillTerminateNotification通知。
3. 記憶體清理--應用終止情境
- 應用在幕後處理完進入到掛起狀態(一種休眠狀態),如果這是發現記憶體不足,為了滿足其他應用對記憶體的需要,該應用會被清除記憶體從而終止運行。
- Background-->Suspended-->Not running
視圖生命週期:
視圖建立------>viewDidLoad:
------->viewWillAppear:
視圖可見
------->viewDidAppear:
------->viewWillDisappear:
視圖不可見
------->viewDidDisappear:
------->didReceiveMemoryWarning:
系統記憶體低
------->viewDidUnload: