本篇文章主要介绍了"网络请求方式 iOS重构——轻量级的网络请求封装实践",主要涉及到网络请求方式方面的内容,对于IOS开发感兴趣的同学可以参考一下:
授权转载,作者:Coder_CYX(微博)前言在十分钟搭建主流框架_简单的网络部分(OC)中,我们使用AFN框架顺利的发送网络请求并返回了有用数据,但对AFN框...

授权转载,作者:Coder_CYX(微博)
前言
在十分钟搭建主流框架_简单的网络部分(OC)中,我们使用AFN框架顺利的发送网络请求并返回了有用数据,但对AFN框架的依赖十分严重,下面我们重构一下。
源码地址:https://github.com/CYXiang/CYXTenMinDemo
初步
很多时候,我们涉及到网络请求这块,都离不开几个第三方框架,AFNetworking,MJExtention, MBProgressHUD(SV)。
初学的时候,都会把它们写到Controller里面,如下:
[[AFHTTPSessionManager manager] GET:CYXRequestURL parameters:params success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject) {
NSLog(@"请求成功");
// 利用MJExtension框架进行字典转模型
weakSelf.menus = [CYXMenu objectArrayWithKeyValuesArray:responseObject[@"result"]];
// 刷新数据(若不刷新数据会显示不出)
[weakSelf.tableView reloadData];
} failure:^(NSURLSessionDataTask * _Nonnull task, NSError * _Nonnull error) {
NSLog(@"请求失败 原因:%@",error);
}];
这样会造成耦合性过高的问题,灵活性也非常不好,因此,AFN的作者也推荐我们不要直接使用,新建一个网络请求类来继承AFN的使用方式更好。
因此,继承的方式,如下: