一个页面多个网络请求依赖调用的问题

rollrock1987 2016-05-24 11:44:03
我现在有一个比较复杂的问题,一个页面里面有挺多个网络请求(先不要管为什么服务器端封装成一个API下发下来)
-(void)A;
-(void)B;
-(void)C;
-(void)D;

其中
函数A没有依赖
函数B依赖函数A
函数C没有依赖
函数D依赖于函数C跟B

我应该以一种什么样的方式(或者技术)去处理上面的关系呢?
因为每个函数都可能被单独出发(就是按钮出发),所以关于SV提示的应该也要考虑在内。
////////////////////////////////////////////////////////////////////////////////
比如A函数定义如下
-(void)A
{
[SVProgressHUD showWithStatus:@"套餐获取中..."];

NSString *urlstring = [NSString stringWithFormat:@"%@%@",SERVER_URL,@“/xxx/xxx”];
id session = [NetWorkUikits requestWithUrl:urlstring param:nil completionHandle:^(id data) {
if([data[@"success"] isEqualToNumber:@YES])
{
[SVProgressHUD dismiss];
}
else
{
[SVProgressHUD showErrorWithStatus:data[@"message"]];
}

} failureHandle:^(NSError *error) {

[SVProgressHUD showErrorWithStatus:@"连接网络失败,请检查网络"];
}];
}
...全文
401 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主,我也是这个问题啊,解决了没,分享下
ravatar0423 2016-05-25
  • 打赏
  • 举报
回复
可以参考NSOperation& NSOperationQueue NSOperation可以指定依赖关系~
jackhan2 2016-05-24
  • 打赏
  • 举报
回复
[_taskQueue pushTask:^(NSObject * _Nonnull arg) { //同步数据库 ... [siteSyncSvc sync:^{ [_taskQueue popAndExcuteTask]; //成功继续下一个任务 } onFail:^(NSString *error) { [_taskQueue terminateTask]; //失败,中止队列并清除队列中的所有任务 }]; } parameter:@"NC"]; [_taskQueue pushTask:^(NSObject * _Nonnull arg) { ... } parameter:@"NC"]; [_taskQueue popAndExcuteTask];
jackhan2 2016-05-24
  • 打赏
  • 举报
回复
自己实现一个任务队列,页面进入时先push任务1(调用方法A),等待方法A的结果返回以后,pop任务1,同时push任务2(调用方法B),等结果返回以后 pop队列,直到队列中任务数为0。 在百度地图操作的时候经常有这样的调用,比如先加载地图,等地图加载完成以后,再设置缩放级别等等
rollrock1987 2016-05-24
  • 打赏
  • 举报
回复
引用 1 楼 ravatar0423 的回复:
请问如果单独调用函数D,是不是要先调用函数B和函数C呢?
可能我没有说清楚,我在顶楼说的意思是:页面一进去需要调用所有的函数,而且这4个函数i之间存在依赖关系。 在手动触发的时候,没有依赖关系存在。
ravatar0423 2016-05-24
  • 打赏
  • 举报
回复
请问如果单独调用函数D,是不是要先调用函数B和函数C呢?

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧