搜索

首页  >  问答  >  正文

ios - afnetworking3.0 如何实现多任务并行请求数据

如题,afnetworking更新到3.0后,如何实现多任务请求数据

PHP中文网PHP中文网2889 天前310

全部回复(1)我来回复

  • 阿神

    阿神2017-04-18 09:16:58

    可以通过Group下载,利用dispath_group_enter()和dispath_group_leave()来把线程放进组里,利用dispath_group_notify来监听任务是否下载完,不要用dispath_group_wait来监听,因为dispath_group_wait会堵塞线程。

    下面我写了个例子:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    <code>NSString *urlStr1 = @"url1";

    NSString *urlStr2 = @"url2";

    NSString *urlStr3 = @"url3";

    NSArray *urlStrings = @[urlStr1, urlStr2, urlStr3];

     

    dispath_group_t requestGroup = dispath_group_create();

     

    for(NSString urlString in urlStrings) { 

        dispatch_group_enter(requestGroup);

        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

        [manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

         

            NSLog(@"Success");

            dispatch_group_leave(requestGroup);

         } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

          

            NSLog(@"Error: %@", error);

            dispatch_group_leave(requestGroup);

        }];

    }

    dispatch_group_notify(requestGroup, dispatch_get_main_queue(), ^{

      

            //doSomething

    });

     

    </code>

    全手打,希望给个好评^_^
    这个方法感觉有点麻烦,如果有哪位大神有更好的方法希望分享一下

    回复
    0
  • 取消回复