1ios框架分为:cocoa Touch:UIKit、Foundation、附属框架ios
Media:OpenGL ES、EAGL、Quartz、Core Animation、Core Audio、 Open Audio Library、Media Playergit
Core Services:Address Book、Core Foundationgithub
Core OS:线程、文件、I/O、内存和网络web
2iOS网络编程层次结构四意图:编程
Cocoa层(NSURL、Bonjour、game Kit、webKit) 缓存
Core Foundation层(基于C的CFNetwork、CFNetServices)网络
OS 层(基于C的BSD socket)数据结构
3在 ARC项目中如何正确使用MRC的第三方框架?框架
ASIHTTPRequest目前不支持ARC,解决方法以下:异步
》选择TARGETS,而后选择BuildnPhases标签
》展开Compile Sources
》在全部ASIHTTPRequest相关的文件后面Compiler Flags中加入编译选项:-fno-objc-arc
4SDWebImage框架的使用
在https://github.com/rs/SDWebImage下载资源包,Download ZIP
一个UIImageView的类目,给cocoa Touch框架添加了异步下载远程图片以及管理图片缓存的功能。
AFNetworking框架的使用:https://github.com/AFNetworking/AFNetworking/
官网地址:http:afnetworking.com
使用步骤:
(1)将框架程序拖拽进项目
(2)添加iOS框架引用
-SystemConfiguration.framework
-MobileCoreSwevices.framework
(3)修改xxx-prefix.pch文件
#import< MobileCoreSwevices / MobileCoreSwevices.h>
#import< SystemConfiguration / SystemConfiguration.h>
MBProgressHUD框架的使用:https://github.com/jdg/MBProgressHUD
FMDB框架下载:https://github.com/ccgus/fmdb
ASI框架的使用:http://github.com/pokeb/asi-http-request/tarball/master
5不使用第三方框架如何实现文件上传?
使用NSURLConnection发送HTTP请求便可
6不使用第三方框架如何实现断点续传?
须要自定义URLRequest的头部的range属性
7为何选择第三方框架?第三方框架把复杂的网络底层操做封装成友好的类和方法,而且加入异常处理,从而能够高效的与服务端API进行数据交换;提升开发效率和稳定性
8选择第三方框架的原则:
》是否普遍使用,有足够多的技术大牛验证过;
》尽可能保证可以看懂其中的全部代码
》能够学习编写其中部分方法,但不要去直接修改
9经常使用的iOS网络开发框架:AFN和ASI(非ARC),附属框架SSZipArchiver(下载地址:https://github.com/samsoffes/ssziparchive
AFN VS ASI
AFN:使用方法为一系列相关的请求定义一个HTTPClient,共用一个BaseURL.
基于NSURL,性能和稳定性略差;
只封装了一些功能,知足基本需求,忽略扩展功能;
针对JSON、XML、Plist、Image四种数据结构封装各自处理器
ASI:使用方法每个请求由构造方法初始化一个实例
基于CFNetwork,性能稳定性比较高;
扩展功能丰富;
没有针对数据类型特别封装,只是预留一些各类接口和工具供开发者自行扩展。
10AFN和ASI的选择
AFN适合逻辑简单的应用,适合开发资源上不丰富的团队
ASI适合已经发展一段时间的应用,或者开发资源相对丰富的团队