iOS异步回调

2016-10-28  本文已影响36人  AryCode

需求

<ol>
<li>下载.mp3文件</li>
<li>下载歌词文件</li>
<li>播放音乐的同时显示歌词</li>
</ol>

这个需求里面下载歌词和.mp3文件是两个不同的异步的网络请求,需求3的需求是在完成1,2的前提下才可以完成

方案

<ol>
<li>使用dispatch_group_t</li>
</ol>

group = dispatch_group_create();
dispatch_group_enter(group);
_manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration ephemeralSessionConfiguration]];
[_manager POST: lyric.url  parameters:newParm  progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject)
 {
          dispatch_group_leave(group);
 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
          // 提示下载失败
 }];

dispatch_group_enter(group);
_manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration ephemeralSessionConfiguration]];
[_manager POST: mp3.url  parameters:newParm  progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject)
 {
          dispatch_group_leave(group);
 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
          // 提示下载失败
 }];
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    // 开始播放
});
上一篇 下一篇

猜你喜欢

热点阅读