1、iOS的系統架構分為4層——Cocoa Touch層、Media層、Core Services層和Core OS層。
2、自動布局(Auto Layout)最先應用于Mac 0S X 10.7的開發,它為視圖布局定義一套約束,而約束定義了兩個界面中視圖之間的關系。
3、AppDelegate是應用程序委托對象,繼承了UIResponder類,并實現了UIapplicationDelegate委托協議。前者使子類AppDelegate具有處理相應時間的能力,而后者委托協議使其能夠成為應用程序委托對象,這種對象能夠響應應用程序的生命周期。相應的,AppDelegate的子類也能夠實現這兩個功能。
4、ViewController類繼承自UIViewController類,它是視圖控制器類,在工程中扮演著根視圖和用戶事件控制類的角色。
5、nib等同于xib。一般而言,一個工程中可以有多個xib文件,一個xib文件對應著一個視圖控制器和多個視圖,而使用故事版時,一個工程只需要一個故事板文件就可以了。故事板還可以描述界面之間的導航關系。 事實上,故事板是多個xib文件集合的描述文件,也采用xml格式。
6、應用的生命周期:作為應用程序的委托對象,AppDelegate類在應用生命周期的不同階段會回調不同的方法。
下面簡要介紹下iOS應用的的5種狀態。
Not Running(非運行狀態)。應用沒有運行或被系統終止。
Inactive(前臺非活動狀態)。應用正在進入前臺狀態,但是還不能接受事件處理。
Active(前臺活動狀態)。應用進入前臺狀態,能接受事件處理。
Background(后臺狀態)。應用進入后臺后,依然能夠執行代碼。如果有可執行的代碼就會執行代碼,如果沒有可執行的代碼或者將可執行的代碼執行完畢,應用會馬上進入掛起狀態。
Suspended(掛起狀態)。處于掛起的應用進入一種“冷凍“狀態,不能執行代碼。如果系統內存不夠,應用會被終止。
在應用狀態躍遷的過程中,iOS系統會回調AppDelegate中的一些方法,并且發送一些相應的通知:
application:didFinishLaunchingWithOptions:應用啟動并進行初始化時會調用該方法并發出通知,這個階段會實例化根視圖控制器。
applicationDidBecomeActive:應用進入前臺并處于活動狀態時調用該方法并發出通知。這個階段可以恢復UI的狀態。
applicationWillResignActive:應用從活動狀態進入到非活動狀態時調用該方法并發出通知。這個階段可以保存UI的狀態。
applicationDidEnterBackground:應用進入后臺時調用該方法并發出通知。這個階段可以保存用戶數據,釋放一些資源(例如數據庫資源等)
applicationWillEnterForeground:應用進入到前臺,但是還沒有處于活動狀態時調用該方法并發出通知。這個階段可以恢復用戶數據。
applicationWillTerminate:應用被終止時調用該方法并發出通知,但內存清除時除外。這個階段釋放一些資源,也可以保存用戶數據。
下面我們以幾個應用場景為切入(具體分析就不寫了,相信大家肯定也都能理解):
應用啟動場景:Not running→Inactive→Active
應用退出場景:該場景的狀態躍遷過程可以分為兩種情況,可以在后臺運行或掛起和不可以。根據產品屬性文件中的相關屬性Application does not run in background可以控制這兩種這兩種狀態。
(1)應用可以在后臺運行或掛起:Active → Inactive → Background→Suspended
(2)應用不可以在后臺運行或掛起:Active → Inactive → Background→Suspended→Not running
掛起重新運行場景:Suspended → Background → Inactive → Active
內存清除-應用終止場景: Background→Suspended→Not running
7、視圖生命周期
在視圖不同的生命周期中,視圖控制器會回調不同的方法。

在視圖控制器已被實例化,視圖被加載到內存中時調用viewDidLoad方法,這個時候視圖并未出現。在該方法中,通常進行的是對所控制的視圖進行初始化處理。
視圖可見前后會調用viewWillAppear:方法和viewDidAppear:方法。視圖不可見前后會調用viewWiiDisappear:和viewDidDisappear:方法。4個方法調用父類相應的方法以實現其功能,編碼時該方法的位置可根據情況做以調整,如下:
1 -(void)viewWillAppear:(BOOL)animated 2 { 3 [super viewWillAppear:YES];
新聞熱點
疑難解答