图片异步下载类目:

.h

#import <UIKit/UIKit.h>

typedef void (^ImageBlock)(UIImage *img);

@interface UIImage (ImageDown)

//第一个参数获得一个url的字符串(图片)

//第二参数 block块是用来将解析出来的image进行第二次赋值

+(UIImage *)imageDownWithUrlString:(NSString *)urlString imageBlock:(ImageBlock)ib;

@end

.m

#import "UIImage+ImageDown.h"

@implementation UIImage (ImageDown)

//实现方法

+(UIImage *)imageDownWithUrlString:(NSString *)urlString imageBlock:(ImageBlock)ib

{

//使用传进来的url字符串转成NSURL

NSURL *url=[NSURL URLWithString:urlString];

//准备请求数据

NSURLRequest *request=[NSURLRequest requestWithURL:url];

//建立连接(get异步请求数据)

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

//解析图片,使用解析好的data转换UIImage

UIImage *image=[UIImage imageWithData:data];

//第二次赋值时调用block,并将解析好的image作为参数传入

ib(image);

}];

//因为异步请求线程慢于主线程,提前返回一个占位图片

return  [UIImage imageNamed:@"5.jpg"];

}

@end

************************************

KVO

观察者

- (void)viewDidLoad

{

[super viewDidLoad];

[[shearSingleModel shearModel] weaking];

//对shearSingleModel的实例进行KVO(键值观察),观察imageArray的值是否发生变化

//一旦发生变化,更新tableVIew

[[shearSingleModel shearModel]addObserver:self forKeyPath:@"imageArray" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

}

//观察者观察到数据发生变化之后,执行该方法

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

{

//判断到底是观察者观察到的哪个值发生了改变

if ([keyPath isEqualToString:@"imageArray"]) {

[self.tableView reloadData];

//移除观察者

[[shearSingleModel shearModel]removeObserver:self forKeyPath:@"imageArray"];

}

}

图片异步加载 ,KVO的更多相关文章

  1. TableView_图片异步加载 KVO

    TableView 异步下载图片 ImageDownloader.h #pragma mark - 声明block //1,声明block typedef void(^Result) (UIImage ...

  2. Android-Universal-Image-Loader 图片异步加载类库的使用

    在博客中看到一篇利用组件进行图片异步加载的文章在此作记录 原文:http://blog.csdn.net/vipzjyno1/article/details/23206387 这个图片异步加载并缓存的 ...

  3. Android图片异步加载框架Android-Universal-Image-Loader

    版权声明:本文为博主原创文章,未经博主允许不得转载. Android-Universal-Image-Loader是一个图片异步加载,缓存和显示的框架.这个框架已经被很多开发者所使用,是最常用的几个 ...

  4. Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)

    这个图片异步加载并缓存的类已经被很多开发者所使用,是最常用的几个开源库之一,主流的应用,随便反编译几个火的项目,都可以见到它的身影. 可是有的人并不知道如何去使用这库如何进行配置,网上查到的信息对于刚 ...

  5. Android ListView 图片异步加载和图片内存缓存

    开发Android应用经常需要处理图片的加载问题.因为图片一般都是存放在服务器端,需要联网去加载,而这又是一个比较耗时的过程,所以Android中都是通过开启一个异步线程去加载.为了增加用户体验,给用 ...

  6. Android 图片异步加载的体会,SoftReference已经不再适用

      在网络上搜索Android图片异步加载的相关文章,目前大部分提到的解决方案,都是采用Map<String, SoftReference<Drawable>>  这样软引用的 ...

  7. 【转】Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)

    Android-Universal-Image-Loader 原文地址:http://blog.csdn.net/vipzjyno1/article/details/23206387 这个图片异步加载 ...

  8. Android图片异步加载之Android-Universal-Image-Loader

    将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就 ...

  9. Android图片异步加载之Android-Universal-Image-Loader(转)

    今天要介绍的是Github上一个使用非常广泛的图片异步加载库Android-Universal-Image-Loader,该项目的功能十分强大,可以说是我见过的目前功能最全.性能最优的图片异步加载解决 ...

随机推荐

  1. Keil UV4 BUG(带字库液晶不能显示“数、正、过”问题的请看)

    Keil UV3一直存在汉字显示(0xFD)的bug,以前在用到带字库的12864液晶的时候,“数”字总是不能正常显示,后来有网友告诉我这是keil的bug,解决掉了.后来keil升级了,我也换了新版 ...

  2. mysql服务的注册,启动、停止、注销。 [delphi代码实现]

    unit Service; interface uses Windows,Classes,SysUtils,Winsvc,winsock; Type {服务句柄信息} TScmInfo=Record ...

  3. java.net.SocketTimeoutException: Read timed out

    If you get java.net.SocketTimeoutException: Read timed out exception Try setting own timeout value w ...

  4. aliyun 安装图形

    yum安装图形界面: 1) yum groupinstall "X Window System" yum install xclock yum groupinstall -y &q ...

  5. EXT JS 4.3 在线学习

    官网地址:http://docs.sencha.com/extjs/4.1.3/ 相关示例:http://docs.sencha.com/extjs/4.1.3/#!/example Examples ...

  6. UESTC_基爷的中位数 2015 UESTC Training for Search Algorithm & String<Problem D>

    D - 基爷的中位数 Time Limit: 5000/3000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  7. nc命令 (NetCat)

    摘自http://www.68idc.cn/help/server/linux/2014040682705.html NetCat,在网络工具中有"瑞士军刀"美誉,其有Window ...

  8. No.26

    "信是未见之事的实底,是所望之事的确据".

  9. One Way Roads(搜索)

    One Way Roads Time Limit:500MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit S ...

  10. mysql sql limit where having order

    SQL语句执行顺序及MySQL中limit的用法 . 分类: MySql2013-09-02 09:1315人阅读评论(0)收藏举报 写的顺序:select ... from... where.... ...