美文网首页技术重塑
子线程加载图片

子线程加载图片

作者: 超_iOS | 来源:发表于2017-07-19 11:20 被阅读24次
  NSString * str = @"http://img.tupianzj.com/uploads/allimg/160601/9-160601091U8.jpg";
  
  [NSThread detachNewThreadSelector:@selector(downLoadImage:) toTarget:self withObject:str];

//在子线程下载图片,发送同步连接请求数据//子线程中系统不会帮我们生成自动释放池,需要我们手动添加
- (void)downLoadImage:(NSString *)imageURLStr
{    
@autoreleasepool {  
      NSURL * url = [NSURL URLWithString:imageURLStr];        
NSURLRequest * request = [NSURLRequest requestWithURL:url];     
   NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];      
  UIImage * image = [UIImage imageWithData:data];    
    //注意:对于界面的刷新,交给主线程来处理,通过调用方法,回到主线程   
     //performSelectorOnMainThread: 在主线程完成相应的任务,      
  [self performSelectorOnMainThread:@selector(refreshUI:) withObject:image waitUntilDone:NO];  //waitUntilDone: YES等待这个方法执行完再执行(refreshUI:) NO:不等
  }    
 }
//主线程刷新UI
- (void)refreshUI:(UIImage *)Aimage{  
  self.image.image = Aimage;
}

相关文章

  • 子线程加载图片

  • webview异步加载图片

    webview的加载进程虽然是在子线程,但是文字加载和图片加载是在同一线程中,如果图片很大,会严重影响文字的加载效...

  • 图片加载堵塞线程

    直接采用 这种方式加载图片 会堵塞主线程 要把他放在子线程中执行,就不会造成界面卡死

  • iOS图片多线程下载和缓存

    前言 初级加载网络图片方式, 具有以下缺点和解决方法: UI不流畅 -> 子线程下载图片 图片重复下载 -> 利用...

  • 性能优化

    1.耗时操作放到子线程 2.使用SDWebImage图片加载框架,图片缓存压缩,减小内存的使用 3.使用autor...

  • 多线程在项目中经常使用的5种场景

    一、放在主线程中执行:(特别是图片加载之后,再放到主线程执行) // 1.放在主线程中加载 [[NSOpera...

  • IOS GCD 全面理解

    需求: 通过请求,加载4张图片。。做到按顺序加载,每张加载2S后,开始加载下一张图片, 方式:GCD的线程组 和 ...

  • UITableView多图下载

    UITableViewCell加载图片的问题: UI不流畅 ---------> 在主线程下载图片,导致卡顿,需要...

  • 线程池工具

    功能简介 固定线程、限制最大队列长度的自定义线程池; 定制线程池加载任务、子线程各种参数,如分页大小、是否子线程出...

  • iOS 多任务全部执行完后再执行操作

    1. 有两个加载图片的任务,全部加载完成后在进行相应操作,耗时操作不应该放在主线程,所以开启子线程加载,通过队列组...

网友评论

    本文标题:子线程加载图片

    本文链接:https://www.haomeiwen.com/subject/erflkxtx.html