这里给大家写了一个方法 ,我们使用block 进行数据异步下载 //block 形式的异步请求 -(void)asyncDownloadWithBlock{ //菊花 [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; //将字符串转化成URL 地址 NSURL *url = [NSURL URLWithString:self.myURLStr]; //创建一个对象 NSURLRequest *request = [NSURLRequest requestWithURL:url]; //获取主队列 NSOperationQueue *mainQueue = [NSOperationQueue mainQueue]; NSLog(@"current:%@",[NSThread currentThread]); NSLog(@"isMulti:%d",[NSThread isMultiThreaded]); NSLog(@"开始下载"); [NSURLConnection sendAsynchronousRequest:request queue:mainQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSLog(@"block 回调,下载完成"); NSLog(@"current:%@",[NSThread currentThread]); NSLog(@"%d",[NSThread isMultiThreaded]); //取消菊花 [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; NSLog(@"%@",response); NSHTTPURLResponse *httpRespone = (NSHTTPURLResponse *)response; //状态码 if (httpRespone.statusCode != 200) { NSLog(@"下载出错"); } if (data && !connectionError) {//这里注意判断 数据存在且 连接没有错误 self.imageView.image = [UIImage imageWithData:data]; } else{ NSLog(@"下载出错"); } }]; NSLog(@"current:%@",[NSThread currentThread]); NSLog(@"isMulti:%d",[NSThread isMultiThreaded]); NSLog(@"************"); }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-12 03:48:18