多线程图片下载

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(@"下载图片。。。。。");
}
上一篇 下一篇

猜你喜欢

热点阅读