iOS SDK庫編程
1.Foundation緩存
Cocoa不是一種編程語言(它能夠運行多種編程語言),它也不是一個開發工具(經過命令行咱們仍然能夠開發Cocoa程序),它是建立Mac OS X和IOS程序的原生面向對象API,爲這二者應用提供了編程環境。網絡
咱們一般稱爲「Cocoa框架」,事實上Cocoa自己是一個框架的集合,它包含了衆多子框架,其中最重要的要數「Foundation」和「UIKit」。前者是框架的基礎,和界面無關,其中包含了大量經常使用的API;後者是基礎的UI類庫,之後咱們在IOS開發中會常常用到。框架
2.CoreGraphics異步
Quartz 2D:IOS上繪圖的主要引擎,是一組二位繪圖和渲染API。socket
Core Graphics:它支持圖形上下文、加載圖像、繪製圖像,等等。 Core Graphics 使用的是系統的座標系來繪製圖片。編程語言
Core Animation 幫助開發者在IOS上實現動畫的框架。工具
3.CoreLocation 用於定位開發工具
MapKit 用於顯示地圖動畫
4. CFNetWork
CFNetWork是蘋果提供的位於Core Foundation 中的一個基於C的底層框架,是對更底層OS層BSD socket的封裝,著名的網絡框架ASI網絡請求方面就是對CFNetWork進行封裝的。CFNetWork主要依賴倆個API,CFSocket 和CFStream,CFSocket主要用於網絡底層的通訊,而CFStream包括CFReadStream 和CFWriteStream,分別用於對Socket的讀取和寫入。
5.CoreData
第三方庫AFNetWorking,MKNetWorkKit,ASIHttpRequest,FMDB,ZXing,ZBar,SDWebImage
ZXing是一個開放源碼的,用Java實現的多種格式的1D/2D條碼圖像處理庫,它包含了聯繫到其餘語言的端口。Zxing能夠實現使用手機的內置的攝像頭完成條形碼的掃描及解碼。
ZBar也是一個掃描二維碼的類庫 是基於c語言寫的
ASIHttpRequest 是使用iOS SDK中的HTTP網絡請求API,至關的複雜,調用很繁瑣,ASIHTTPRequest就是一個對CFNetwork API進行了封裝,而且使用起來很是簡單的一套API,用Objective-C編寫,能夠很好的應用在Mac OS X系統和iOS平臺的應用程序中。ASIHTTPRequest適用於基本的HTTP請求,和基於REST的服務之間的交互。
以前一直在使用ASIHTTPRequest做爲網絡庫,可是因爲其中止更新,iOS7上可能出現更多的問題,因而決定更換網絡庫。
目前比較流行的網絡庫主要有AFNetworking和MKNetworkKit,通過一番google後,得出這三個庫之間的比較以下:
|
AFNetworking
|
MKNetworkKit
|
ASIHTTPRequest |
更新狀況 | 維護和使用者相對多 | 維護和使用者相對少 | 中止更新 |
支持iOS和OSX
|
是
|
是
|
是 |
ARC
|
是
|
是
|
否 |
斷點續傳
|
否,可經過AFDownloadRequestOperation | 是 | 是 |
同步異步請求 | 只支持異步 | 否 | 是 |
圖片緩存到本地
|
否,經過SDURLCache或AFCache
|
否
|
否 |
圖片緩存到內存
|
是 |
是
|
否 |
後臺下載 | 是 | 是 | 是 |
下載進度 | 否,可經過AFDownloadRequestOperation | 是 | 是 |
緩存離線請求 | 否,經過SDURLCache或AFCache | 是 | 否 |
JSON、XML | 是 | 是 | 否 |
根據以上對比,AFNetworking雖然相比MKNetworkKit功能要弱一些,可是它的擴展性更強,並且維護者比較多,從長期來看要優於MKNetworkKit。