代码库> 网络> AFNetworking的网络层方案设计
AFNetworking的网络层方案设计
关注
上传者:宇玄丶 分类:网络(Networking)
查看次数:1524 下载次数:264
上传时间:2017-03-23 大小:656 B
AFNetworking的网络层方案设计,网络层的抽离,实现起来非常方便:
一、
// 1>导入头文件 ,定义请求方法
@property(nonatomic,strong)GoodsListRequest *goodsListRequest;
// 2>初始化
- (GoodsListRequest *)goodsListRequest {
if (!_goodsListRequest) {
/**
注意:这里并不是简单的init初始化,你是需要遵守三个协议方法的,所以这里有两个self
_goodsListRequest = [[GoodsListRequest alloc] initWithDelegate:self paramSource:self];
}
return _goodsListRequest;
}
二、
/**
这里self.contentView就是加载的小菊花显示在哪个视图上,
因为我这里最底层的视图是自定义的contentView,根据需求、用户体验,可自行修改视图。
*/
[self.goodsListRequest loadDataWithHUDOnView:self.contentView];
三、
#pragma mark - APIManagerParamSourceDelegate
- (NSDictionary *)paramsForApi:(BaseAPIRequest *)request {
/** 如果请求的接口需要传参,那么在此return。 */
if (request == self.addCartRequest) {
return @{@"goods_id":self.operatingGoods.goods_id,
@"number":@"1"};
}
/** 文章中已经提到,如果该请求接口没有参数,直接返回nil即可。 */
return nil;
}
/** 请求之后的,成功、失败的回调。 */
#pragma mark - APIManagerApiCallBackDelegate
- (void)managerCallAPIDidSuccess:(BaseAPIRequest *)request {
if (request == self.goodsListRequest) {
/**
此处就是赋值操作,将请求下来的数据源,
赋值给tableView的数据源,然后刷新表格即可。
*/
self.shopTableView.dataArray = [[request.responseData valueForKey:@"data"] mutableCopy];

/**
注意request.responseData接收的数据格式,因为此接口返回的是数组,所以这么写。
如果返回的是对象,很简单:

/** 随便举个例子*/
* self.userData:模型model
(将返回的对象中的数据赋值给model,然后取model中的各个字段,赋值即可。
当然有表格的界面,在请求成功之后记得刷新表格。)

* data : 此处的data为定义的model。
文章中那个商品列表的请求提到,如果返回的是数组就定义数组,
如果是对象就定义model。
self.userData = [request.responseData valueForKey:@"data"];
*/
[self.shopTableView reloadData];
return;
}
/** 此处对应请求的API接口,成功之后的回调*/
if (request == self.addCartRequest) {
[MBProgressHUD showMsgHUD:@"加入购物车成功"];
return;
}
}
/** 失败,可以不写什么,因为返回的是return,根据需求自行处理吧。 */
- (void)managerCallAPIDidFailed:(BaseAPIRequest *)request {
}
收藏
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0


本周热门下载
综合评论
提示
sina weixin mail 回到顶部