iOS SDK库
1.Foundation
Cocoa不是一种编程语言(它可以运行多种编程语言),它也不是一个开发工具(通过命令行我们仍然可以开发Cocoa程序),它是创建Mac OS X和IOS程序的原生面向对象API,为这两者应用提供了编程环境。
我们通常称为“Cocoa框架”,事实上Cocoa本身是一个框架的集合,它包含了众多子框架,其中最重要的要数“Foundation”和“UIKit”。前者是框架的基础,和界面无关,其中包含了大量常用的API;后者是基础的UI类库,以后我们在IOS开发中会经常用到。
2.CoreGraphics
Quartz 2D:IOS上绘图的主要引擎,是一组二位绘图和渲染API。
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。