dispatch_queue_t mainQueue=dispatch_get_main_queue();//获取主队列
//从网络上加载一幅图片
dispatch_queue_t currentQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);//第一个参数表明在此队列获取的时间片
//异步加载
dispatch_async(currentQueue, ^(void){
__block UIImage *image=nil;
//在次级线程中同步加载
dispatch_sync(currentQueue, ^{
NSString *stringAsUrl=@"http://ww3.sinaimg.cn/bmiddle/7f4aad6djw1dyhxfs9mt3j.jpg";
NSURL *url=[NSURL URLWithString:stringAsUrl];
NSURLRequest *request=[NSURLRequest requestWithURL:url];
NSError *downLoadError=nil;
NSData *imageData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&downLoadError];//发送网络请求
if (downLoadError==nil&&imageData!=nil) {
image=[UIImage imageWithData:imageData];
}
else if(downLoadError!=nil)
{
NSLog(@"error With %@",downLoadError);
}
else
NSLog(@"所提供的url中没有图片");
});
//加载完成后,返回至主线程
dispatch_sync(mainQueue, ^{
if (image!=nil) {
UIImageView *imageView=[[UIImageView alloc]initWithFrame:self.view.bounds];
[imageView setImage:image];
[self.view addSubview:imageView];
}
else
NSLog(@"照片下载失败");
});
});
ios5CookBook学习笔记之异步加载网络图片
最新推荐文章于 2024-01-14 17:48:32 发布