一.MVC模式(面試常問的)面試
M: Model(專門負責存儲數據的類)設計模式
V: View (專門用來展現數據)架構
C: Controller (專門用來控制視圖顯示數據)app
iOS程序採用MVC設計模式爲基礎設計模式。即一個程序的構成,由模型,視圖,控制器構成spa
模型(M):非UI部分,數據的儲存與管理設計
視圖(V):UI部分,用於顯示界面,與用戶交互,包括接收觸發事件,顯示數據內容orm
控制器(C):自己不顯示,用於管理和模型;將視圖部分和模型部分連接起來。原則上視圖不能直接訪問數據。生命週期
【注】使用MVC架構,視圖不直接訪問數據,以便於修改,下降開發和維護成本。事件
二.視圖控制器內存
//應用程序中每個界面都是一個視圖控制器,視圖控制器自己不可見,能在每一個界面上看到的內容,所有都是直接或者間接添加到視圖控制器的view屬性上的.
UIViewController 看不見的,可是每一個Controller都一個View屬性
1.生命週期
這裏所謂的生命週期,指視圖從加載到銷燬所調用的方法及其調用順序
//加載視圖
//在這個方法中通常去自定義一個view,可是通常狀況這個方法通常不會使用
//第一次建立的時候會調用
- (void)loadView
//視圖加載完成
//在這兒添加各類子視圖
//第一次建立的時候會調用
- (void)viewDidLoad
//視圖即將出如今屏幕上
//每次視圖控制器的view將要出現的時候都會調用
- (void)viewWillAppear:(BOOL)animated
//視圖已經出如今屏幕上
//每次視圖控制器的view已經出現的時候都會調用
- (void)viewDidAppear:(BOOL)animated
//視圖即將消失
//傳值和保存數據
//每次視圖將要消失的時候都會調用
- (void)viewWillDisappear:(BOOL)animated
//視圖已經消失
//每次視圖已經消失的時候都會調用
- (void)viewDidDisappear:(BOOL)animated
//收到內存警告
//內存警告能夠經過模擬器來模擬;
- (void)didReceiveMemoryWarning