对YTKNetwork的扩展

YTKNetwork简介

YTKNetwork 的基本的思想是把每一个网络请求封装成对象。每一个请求都需要继承 YTKRequest 类,通过覆盖父类的一些方法来构造指定的网络请求。把每一个网络请求封装成对象其实是使用了设计模式中的 Command 模式。

如果你的项目中需要缓存网络请求、管理多个网络请求之间的依赖、希望检查服务器返回的 JSON 是否合法,那么 YTKNetwork 能给你带来很大的帮助。如果你缓存的网络请求内容需要依赖特定版本号过期,那么 YTKNetwork 就能发挥出它最大的优势。

扩展原因

假如我要请求一个菜单下的所有菜品,并将请求到的数据显示到tableView上,一个菜品对应一个cell。我们会封装一个菜品model来存储菜品的所有信息,包括菜品的原材料、价格等等。如果使用YTKNetwork现有的接口,我们只能在ViewController中写一大坨代码将请求到的数据解析成一个一个的菜品model,这样既不简洁也不符合封装的思想。因此我在请求对象这个类YTKRequest中封装了解析数据的方法,将数据的解析放在网络数据层,这样在UI层拿到的就是一个一个解析好的菜品model了。

扩展方法

让网络请求类遵循一个协议,如图1中GEAPIScheduleProtocol,规定每个网络请求类需要实现协议中的解析数据的方法analysisReturnData。

并在YTKNetworkAgent 数据下载完成后调用该block进行数据解析,如图二。

使用示例,如图三。



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,752评论 4 61
  • 阅读时间:2015年11月8日上午10点至12点 阅读书本:《塔木德》 赫里姆 著 阅读数量:第14~19章 阅读...
    AFL李政阅读 3,043评论 0 0
  • 大家好,我是彭小六。今天我们继续读《影响力》的第六章[权威]。 当我们进入不假思索的“卡嗒,哗”状态时,不用权威的...
    彭小六阅读 9,495评论 5 33
  • 筒书停更了十来天,有朋友关心道:怎么停了,有什么事情等等?我在这儿谢过大家伙了 其实真没什么,一切尚好,只是连续日...
    李昌红阅读 2,629评论 0 2
  • 也许,在这才能够把握的所有心声都写出来吧。互联网发达的程度让我无法想象自己几年或者是几十年以后再回过头来看...
    固子阅读 1,193评论 0 0

友情链接更多精彩内容