多线程图片下载
2021-04-08 本文已影响0人
Albert新荣
-(void)downloadImageWithURL:(NSString *)urlStr{
//选择组合:全局队列异步执行 -> 由子线程下载图片
dispatch_queue_t globalQueue = dispatch_get_global_queue(0, 0);
dispatch_async(globalQueue, ^{
NSLog(@"开始下载图片:%@", [NSThread currentThread]);
//NSString -> NSURL -> NSData -> UIImage
NSURL *imageURL = [NSURL URLWithString:urlStr];
//下载图片
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];
NSLog(@"image==>%@",image);
//从子线程回到主线程(方式二:常用)
//组合:主队列异步执行
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"回到主线程:%@", [NSThread currentThread]);
//更新界面
self.leftIV.image = image;
});
NSLog(@"xxxxxxxx");
});
//主线程执行
NSLog(@"下载图片。。。。。");
}