分享

网络(4.1)—AFNetworking多任务异步请求

 久辰堡 2015-07-15
一.
(1)导入三方库
    AFNetworking   和  SDWebImage (MRC时:-fno-objc-arc)
(2)

- (void)viewDidLoad

{

    [super viewDidLoad];

    [self createUI];

}


-(void)createUI

{

    for(int i = 0;i<4;i++)

    {

        UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 64 + 104 * i, 320, 104)];

        imageView.tag = i + 1;

        [self.view addSubview:imageView];

    }

    

    UIBarButtonItem * item = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(pressBarBtn:)];

    self.navigationItem.rightBarButtonItem = item;

}

(3)按钮响应方法

-(void)pressBarBtn:(id)sender

{

    //多个任务异步请求数据

    NSString * path1 = @"http://mp./pic/act/banner_20150416144658_20150514104127.jpg";

    //<1>转化成NSURL

    NSURL * url1 = [NSURL URLWithString:path1];

    //<2>封装成请求对象

    NSURLRequest * request1 = [NSURLRequest requestWithURL:url1];

    //<3>开始异步请求

    AFHTTPRequestOperation * operation1 = [[AFHTTPRequestOperation alloc]initWithRequest:request1];

    //<4>请求结束以后 将请求的数据显示在UIImageView

    [operation1 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        UIImageView * imageView = (UIImageView *)[self.view viewWithTag:1];

        //将请求的数据转化成UIImage添加到图片视图上

        imageView.image = [UIImage imageWithData:responseObject];

        NSLog(@"request1");

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

        NSLog(@"%@",error.description);

    }];

    

    NSString * path2 = @"http://10.0.8.8/sns/attachment/201412/20/93916_1419040676yd6Q.jpg";

    //<1>转化成NSURL

    NSURL * url2 = [NSURL URLWithString:path2];

    //<2>封装成请求对象

    NSURLRequest * request2 = [NSURLRequest requestWithURL:url2];

    //<3>开始异步请求

    AFHTTPRequestOperation * operation2 = [[AFHTTPRequestOperation alloc]initWithRequest:request2];

    //<4>请求结束以后 将请求的数据显示在UIImageView

    [operation2 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        UIImageView * imageView = (UIImageView *)[self.view viewWithTag:2];

        //将请求的数据转化成UIImage添加到图片视图上

        imageView.image = [UIImage imageWithData:responseObject];

        NSLog(@"request2");

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

        NSLog(@"%@",error.description);

    }];


    

    NSString * path3 = @"http://mp./pic/act/banner_20150520104032.jpg";

    //<1>转化成NSURL

    NSURL * url3 = [NSURL URLWithString:path3];

    //<2>封装成请求对象

    NSURLRequest * request3 = [NSURLRequest requestWithURL:url3];

    //<3>开始异步请求

    AFHTTPRequestOperation * operation3 = [[AFHTTPRequestOperation alloc]initWithRequest:request3];

    //<4>请求结束以后 将请求的数据显示在UIImageView

    [operation3 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        UIImageView * imageView = (UIImageView *)[self.view viewWithTag:3];

        //将请求的数据转化成UIImage添加到图片视图上

        imageView.image = [UIImage imageWithData:responseObject];

        NSLog(@"request3");

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

        NSLog(@"%@",error.description);

    }];


    

    NSString * path4 = @"http://mp./pic/act/banner_20150518145310.jpg";

    //<1>转化成NSURL

    NSURL * url4 = [NSURL URLWithString:path4];

    //<2>封装成请求对象

    NSURLRequest * request4 = [NSURLRequest requestWithURL:url4];

    //<3>开始异步请求

    AFHTTPRequestOperation * operation4 = [[AFHTTPRequestOperation alloc]initWithRequest:request4];

    //<4>请求结束以后 将请求的数据显示在UIImageView

    [operation4 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        UIImageView * imageView = (UIImageView *)[self.view viewWithTag:4];

        //将请求的数据转化成UIImage添加到图片视图上

        imageView.image = [UIImage imageWithData:responseObject];

        NSLog(@"request4");

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

        NSLog(@"%@",error.description);

    }];

    

    

    //<5>将多个请求对象放在一个队列中

    NSOperationQueue * queue = [[NSOperationQueue alloc]init];

    //<6>设置队列中最大承载的请求对象的个数

    queue.maxConcurrentOperationCount = 4;

    //<7>4个请求放在队列中开始异步请求

    [queue addOperations:@[operation1,operation2,operation3,operation4] waitUntilFinished:NO];

    

}


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约