iOS多图片下载
2016-06-08 23:14
357 查看
iOS多图片下载、在cell里面下载图片、做了缓存优化。
(app.icon是图片地址)
// 先从内存缓存中取出图片 UIImage *image = self.images[app.icon]; if (image) { // 内存中有图片 cell.imageView.image = image; } else { // 内存中没有图片 // 获得Library/Caches文件夹 NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; // 获得文件名 NSString *filename = [app.icon lastPathComponent]; // 计算出文件的全路径 NSString *file = [cachesPath stringByAppendingPathComponent:filename]; // 加载沙盒的文件数据 NSData *data = [NSData dataWithContentsOfFile:file]; if (data) { // 直接利用沙盒中图片 UIImage *image = [UIImage imageWithData:data]; cell.imageView.image = image; // 存到字典中 self.images[app.icon] = image; } else { // 下载图片 [self.queue addOperationWithBlock:^{ // 下载图片、多线程 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:app.icon]]; UIImage *image = [UIImage imageWithData:data]; [NSThread sleepForTimeInterval:1.0]; // 回到主线程显示图片 [[NSOperationQueue mainQueue] addOperationWithBlock:^{ cell.imageView.image = image; }]; // 存到字典中 self.images[app.icon] = image; // 将图片文件数据写入沙盒中 [data writeToFile:file atomically:YES]; }]; }
相关文章推荐
- Block
- 【转】解决XCode安装插件后插件不能使用的问题
- 【原】iOS学习之Socket
- CCS新建BIOS工程的设置问题
- #pragma mark
- IOS 公共类-数字处理
- iOS计算字体宽和高
- Macaca-iOS入门那些事
- ios开发网址总结
- ios 定位线上bug
- iOS已上线应用的推送证书过期的处理
- ZCImagePickerController框架简介
- IOS 从服务器下载文件
- 博客内部各种下载链接
- iOS - 开发类库
- IOS XML系统自带解析
- 此证书的签发者无效Missing iOS Distribution signing identity问题解决
- iOS view 的生命周期
- ios 判断GPS是否是在中国境内
- ios 关于正则表达式