码迷,mamicode.com
首页 > 移动开发 > 详细

iOS多图片下载

时间:2016-06-24 09:21:51      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

 1 iOS多图片下载、在cell里面下载图片、做了缓存优化。
 2 
 3 (app.icon是图片地址)
 4 
 5 // 先从内存缓存中取出图片
 6     UIImage *image = self.images[app.icon];
 7     if (image) { // 内存中有图片
 8         cell.imageView.image = image;
 9     } else {  // 内存中没有图片
10         // 获得Library/Caches文件夹
11         NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
12         // 获得文件名
13         NSString *filename = [app.icon lastPathComponent];
14         // 计算出文件的全路径
15         NSString *file = [cachesPath stringByAppendingPathComponent:filename];
16         // 加载沙盒的文件数据
17         NSData *data = [NSData dataWithContentsOfFile:file];
18         
19         if (data) { // 直接利用沙盒中图片
20             UIImage *image = [UIImage imageWithData:data];
21             cell.imageView.image = image;
22             // 存到字典中
23             self.images[app.icon] = image;
24         } else { // 下载图片
25             [self.queue addOperationWithBlock:^{
26                 // 下载图片、多线程
27                 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:app.icon]];
28                 UIImage *image = [UIImage imageWithData:data];
29                 
30                 [NSThread sleepForTimeInterval:1.0];
31                 
32                 // 回到主线程显示图片
33                 [[NSOperationQueue mainQueue] addOperationWithBlock:^{
34                     cell.imageView.image = image;
35                 }];
36                 
37                 // 存到字典中
38                 self.images[app.icon] = image;
39                 // 将图片文件数据写入沙盒中
40                 [data writeToFile:file atomically:YES];
41             }];
42      }

 

iOS多图片下载

标签:

原文地址:http://www.cnblogs.com/fengmin/p/5612975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!