MVC(要顯示不少不少內容)
大略的講,做爲一個iOS程序員來講,首先要了解一個叫作MVC的模式。這個模式定義了Cocoa Touch框架的整體結構。在iOS程序中,咱們也須要按照這種模式進行界面代碼的編寫。這樣設計出來的類具備較好的結構,且比較適合於作單元測試。
view,有重用機制的顯示功能的視圖
dataSource:用於獲取顯示的數據
delegate:時間點,詢問
重用隊列。
model,
本地
文件讀寫(大文件讀寫要考慮用多線程處理,避免UI卡主)
數據庫(增刪改查)
coreData
nsuserdefault
網絡
http (如何進行多個異步請求)
只有發請求,纔會返回數據。
請求:(header file 用來描述所傳送的信息)
get,顯示發送信息,全部參數都拼接到url上,大小有限制255字節
post,隱式發送信息,全部信息放到body中傳送
連結:
同步:接受的數據(data),迴應,錯誤同時。
異步:經過多線程來處理
收到錯誤
收到迴應本質就是header file 用來描述下面數據
收到部分數據:拼接收到數據
完成:對數據進行處理。
解析:
JSON:系統ios5,SBJOSN(nsstring的類目)(返回類型數組或字典);
xml:xmlReader(系統原生,直接返回字典),GData的XPath
socket:時時通信
TCP:有鏈接,在鏈接上之後,發送信息可靠。
缺點,比較耗資源,
傳文件的時候。
UDP:無鏈接,不可靠
優勢,節省資源,靈活方面
聊天的時候。心跳驗證。
controller:協調view和model,處理各類時間點和事件。
關於MVC的面試題:
一、怎麼理解MVC,在Cocoa中MVC是怎麼實現的?
Model: 表明你的應用程序是什麼(不是怎麼展示)
Controller: 控制你的Model怎麼展示給用戶(UI邏輯)
View: Controller的奴隸。。。
Model,Controller,View相互通信的規則:
- Controller能夠直接和Model通訊
- Controller也能夠直接和View通訊
- Model和View永遠不能直接通訊
- iOS中View和Controller的通訊是透明和固定的,主要經過outlet和action實現
- View使用Delegate接口和Controller同步信息
- View不直接和數據通訊,使用dataSource接口從Controller處獲取數據
- View的delegate和dataSource通常就是Controller
- Controller負責爲View翻譯和格式化Model的數據
- Model使用Notification & KVO的方式分發數據更新信息,Controller能夠有選擇的監聽本身感興趣的信息。
- View也能夠監聽廣播信息,但通常不是Model發出的信息
- 一個完整的App就是不少MVC的集合