总结:YTKNetwork的做法大致就是用一个变量记录完成请求的个数,然后在单个网络请求结束回调的时候判断当前完成的网络请求个数是否和总的网络请求个数相等,如果相等则说明请求结束。
2、dispatch_group + 信号量
参考文章采用的是group + 信号量,下面示例采用dispatch_group_enter、dispatch_group_leave实现详见 本篇文章demo。
- (void)loadRequest1
{
dispatch_group_t dispatchGroup = dispatch_group_create();
dispatch_group_enter(dispatchGroup);
[MALAFNManger getDataWithUrl:Url1 parameters:nil finish:^(RequestResult result) {
NSLog(@"第一个请求完成");
dispatch_group_leave(dispatchGroup);
} des:@"第一个url"];
dispatch_group_enter(dispatchGroup);
[MALAFNManger getDataWithUrl:Url2 parameters:nil finish:^(RequestResult result) {
dispatch_async(dispatch_get_global_queue(0, 0), ^{
sleep(10);//网络请求结束后回调是在主线程如果sleep放在外面会阻塞主线程
NSLog(@"第二个请求完成");
dispatch_group_leave(dispatchGroup);
});
} des:@"第二个url"];
dispatch_group_notify(dispatchGroup, dispatch_get_main_queue(), ^(){
NSLog(@"请求完成");
});
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。
注:相关教程知识阅读请移步到IOS开发频道。










