今天写了一个demo,从服务器获取图片,然后显示在cell上,大家都知道cell的重用机制,当往下拉的时候,上面的cell遮住了,下面的cell就会重用被遮住的cell,

贴代码:

 NSString *urlstring=[dict objectForKey:@"imagePath"];
NSURL *url=[NSURL URLWithString:urlstring];//获取图片的url路径
NSURLRequest *urlrequest=[[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:];
NSLog(@"UI Thread is %@",[NSThread currentThread]);//这里是主线程
//使用UIImageView+AFNetWorking 异步下载图片,缓存到本地
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, ), ^{
NSLog(@"current Thread :%@",[NSThread currentThread]);//这里使用异步机制,肯定是非UI线程
[cell.myImage setImageWithURLRequest:urlrequest
placeholderImage:[UIImage imageNamed:[dict objectForKey:@"imageName"]]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
NSLog(@"load image thread is %@",[NSThread currentThread]);//猜猜这里是什么线程??
dispatch_async(dispatch_get_main_queue(), ^{
cell.myImage.image=image;
NSLog(@"image thread :%@",[NSThread currentThread]);//这里肯定是主线程
}); NSLog(@"下载图片成功");
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSLog(@"图片加载失败:%@",error);
}];

刚学AFNetworking 的时候,不知道看了谁的博文,说

setImageWithURLRequest:urlrequest 这个方法是异步机制,好吧,我承认当时单纯了,直到今天我写这个demo的时候,发现如果不是用异步机制,下载的图片非常慢,有时候还会超时,滑动cell的时候会非常卡,然后我就打印线程,看看是不是在主线程下载东西了,打印结果:
看,
setImageWithURLRequest:urlrequest 这个方法中打印的线程竟然是主线程,反正我惊讶了!!

有关UIImageView+AFNetworking 下载图片的线程问题的更多相关文章

  1. 开子线程下载图片,回到主线程刷新UI步骤

    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [NSThread detachN ...

  2. bug:使用UIImageView+AFNetworking 图片不能正常显示的原因

    今天调的东西涉及到图片加载,我刚看了下项目里以前导入了SDWebImage库,又发现整个就一个地方使用到了SDWebImage异步加载图片的方法,感觉占体积又鸡肋,干脆去掉,用UIImageView+ ...

  3. AFNetworking 3.0 源码解读(十)之 UIActivityIndicatorView/UIRefreshControl/UIImageView + AFNetworking

    我们应该看到过很多类似这样的例子:某个控件拥有加载网络图片的能力.但这究竟是怎么做到的呢?看完这篇文章就明白了. 前言 这篇我们会介绍 AFNetworking 中的3个UIKit中的分类.UIAct ...

  4. SDWebImage下载图片的使用

    第一步,下载SDWebImage,导入工程.github托管地址https://github.com/rs/SDWebImage 第二步,在需要的地方导入头文件 1 #import "UII ...

  5. [翻译] AsyncImageView 异步下载图片

    AsyncImageView  https://github.com/nicklockwood/AsyncImageView AsyncImageView is a simple extension ...

  6. [Xcode 实际操作]八、网络与多线程-(22)使用GCD多线程技术异步下载图片

    目录:[Swift]Xcode实际操作 本文将演示如何使用使用GCD多线程技术异步下载图片. Grand Central Dispatch(GCD) 是 Apple 开发的一个多核编程的较新的解决方法 ...

  7. Android下载图片/调用系统相机拍照、显示并保存到本地

    package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException ...

  8. tableView异步下载图片/SDWebImage图片缓存原理

    问题说明:假设tableView的每个cell上的imageView的image都是从网络上获取的数据.如何解决图片延迟加载(显示很慢).程序卡顿.图片错误显示.图片跳动的问题. 需要解决的问题: 1 ...

  9. android 多线程下载图片

    很多时候我们需要在Android设备上下载远程服务器上的图片进行显示,今天Android123整理出两种比较好的方法来实现远程图片的下载.   方法一.直接通过Android提供的Http类访问远程服 ...

随机推荐

  1. MySql排序性能对比

  2. loadrunner http协议put模式脚本编写

    web_submit_data("rest", "Action=http://www.test.com/111ojhjh.do", "Method=P ...

  3. SQL Server 行列转换

    /* 标题:普通行列转换(version 2.0) 作者:范中磊 说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql ...

  4. Macbook配置adb环境

    配置adb命令 http://stackoverflow.com/questions/5526470/trying-to-add-adb-to-path-variable-osx http://sta ...

  5. 打死也不换系统?笑谈过气的Windows XP

    http://tech.qq.com/a/20131012/007336.htm 按照IT领域的“安迪-比尔定律”:软件和游戏不断生成过户需求,硬件则通过技术创新来消化这些需求,这个过程会刺激用户在电 ...

  6. Android开发之使用BaseAdapter的notifyDataSetChanged()无法更新列表

    在做一个通讯录的app,使用BaseAdapter作为adapter.重写了getCount().getItem().getItemId() .getView()方法. 因为新建联系人在第二个acti ...

  7. 利用if,else判断输入的是不是一个正整数

    static void Main(string[] args)        {            while (true)                      { Console.Writ ...

  8. Linux Kernel ‘/net/socket.c’本地信息泄露漏洞

    漏洞名称: Linux Kernel ‘/net/socket.c’本地信息泄露漏洞 CNNVD编号: CNNVD-201312-037 发布时间: 2013-12-04 更新时间: 2013-12- ...

  9. CSS——LESS

    去年就初次接触了LESS,并用他制作了一个Less.org的首页页面,但由于CSS的固有模式,没有让自己喜欢上他.由于前段时间学习bootstrap from twitter再次让我接触了这个Less ...

  10. Matlab read_grib.r4 安装新方法(转自:http://blog.sina.com.cn/s/blog_9f36648b010179s7.html)

    最近,打算用Matlab处理些GRIB格式的文件,需要在Matlab中添加read_grib.m文件,其实相当于是添加一个工具箱.read_grib.m的下载见:http://www.renci.or ...