1. 程式人生 > >AFN實現併發結束後回撥攔截的一種思路

AFN實現併發結束後回撥攔截的一種思路

原創帖子,轉載請註明出處:http://blog.csdn.net/sbvfhp/article/details/48112333


需求:有三個併發的通訊執行緒,三個通訊都結束後,進行一個回撥攔截(當然這個也可以用AFN提供的方法實現,這裡只是研究自己的一種實現)

-(void)viewDidLoad
{
    NSString *url1 = @"http://api.oupag.com/dev/api/shenzhentong.php?cardno=29444xxxx";
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.operationQueue.maxConcurrentOperationCount = 3;

    [manager GET:url1 parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject){
        
        [self requestSuccessLast:responseObject];
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        [self requestFailLast:error];
    }];
    
    [manager GET:url1 parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject){
        [self requestSuccessLast:responseObject];
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        [self requestFailLast:error];
    }];
    
    [manager GET:url1 parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject){
        [self requestSuccessLast:responseObject];
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        [self requestFailLast:error];
    }];
}

-(void)requestSuccessLast:(id)response{
    _count++;
    
    if (_count==3) {
        NSLog(@"-------------以成功結束了-------------");
    }else{
        NSLog(@"第---%d-----次成功",_count);
    }
}

-(void)requestFailLast:(id)response{
    _count++;
    
    if (_count==3) {
        NSLog(@"-------------以失敗線束了-------------");
    }else{
        NSLog(@"第---%d-----次失敗",_count);
    }
}