对于AFNetworking目前是主流的iOS开发通讯库,很多开发者对AFNetworking进行二次封装,来方便自己开发,在这里分享一下YTKNetwork的使用,以及对YTKNetwork添加一些分类来更方便的进行开发。YTKNetwork的github地址:https://github.com/yuantiku/YTKNetwork。
以下抄自YTKNetwork的介绍:
- 支持按时间缓存网络请求内容
- 支持按版本号缓存网络请求内容
- 支持统一设置服务器和 CDN 的地址
- 支持检查返回 JSON 内容的合法性
- 支持文件的断点续传
- 支持
block
和delegate
两种模式的回调方式 - 支持批量的网络请求发送,并统一设置它们的回调(实现在
YTKBatchRequest
类中) - 支持方便地设置有相互依赖的网络请求的发送,例如:发送请求A,根据请求A的结果,选择性的发送请求B和C,再根据B和C的结果,选择性的发送请求D。(实现在
YTKChainRequest
类中) - 支持网络请求 URL 的 filter,可以统一为网络请求加上一些参数,或者修改一些路径。
- 定义了一套插件机制,可以很方便地为 YTKNetwork 增加功能。猿题库官方现在提供了一个插件,可以在某些网络请求发起时,在界面上显示"正在加载"的 HUD。
YTKNetwork 适合稍微复杂一些的项目,不适合个人的小项目。
如果你的项目中需要缓存网络请求、管理多个网络请求之间的依赖、希望检查服务器返回的 JSON 是否合法,那么 YTKNetwork 能给你带来很大的帮助。如果你缓存的网络请求内容需要依赖特定版本号过期,那么 YTKNetwork 就能发挥出它最大的优势。