OC转swift3.0 实践 (三)网络层初探

OC转swift3.0 实践 (三)网络层初探_第1张图片
通过API获取到的数据.png

如上图是此次的效果图,在这先声明,此次的数据是从API那边获取再渲染上去的,并不是像 OC转swift3.0实战 (二)使用自定义cell的tableview那样直接把数据写死,毕竟二那边只是UI,今天要说的网络层是在二的基础上继续的下一步,下面进入正题。
首先,我们会想到OC有几个强大的第三方库, 网络请求AFNetworking, JSON处理用JSONModel,YYModel,MJExtension等,我有几个朋友换了公司,项目用Swift,但里面还是通过桥文件用的AFNetworking ,这我听着都尴尬,搞得我强迫症都犯了。后来查询了下资料,发现对于Swift的网络请求,AFNetworking的“爸爸”也早就给他搞了个弟弟—— Alamofire,没错,两个库都是出自同一个人之手。

OC转swift3.0 实践 (三)网络层初探_第2张图片

对于JSON处理方面,在Swift界有个大名鼎鼎的库 SwiftyJSON,但是这个库也不是那么完美,原因如下:

1.SwiftyJSON 可以不建Model,无限得用JSON["xxx"]["yyy"]["zzz"]......,这对于后台返回的JSON数据少的话也许是件好事,但如果后台返回的数据一层套一层呢?字典里面有数组,数组里面又有字典.....想想也是酸爽,而且这样对于日后不管是自己维护还是他人接手,都是一件相当蛋疼的问题,谁也不能保证后台的数据结构发生变化,代码的可读性也是很重要的。
2.既然不建Model不怎么合适,那我建一个不就行了吗?不好意思!SwiftyJSON只能帮你解析成json数据,但它还不能帮你自动映射到Model中去

那么接下来该怎么办呢?
不急,Model肯定是要建的,现在的问题是找一个能帮SwiftyJSON忙的,帮它把解析出来的json数据映射到Model中去。那么 HandyJSON就登场了。它就是来帮SwiftyJSON忙的。关于它的的用法和身世啥的可以参考这篇文章。
最后,我给出了一套适合自己的网络层套餐

Alamofire+ SwiftyJSON+ HandyJSON,

关于具体在项目中怎么结合使用,请看OC转swift3.0实战 (四)网络层实操

你可能感兴趣的:(OC转swift3.0 实践 (三)网络层初探)