zoukankan      html  css  js  c++  java
  • iOS多图片下载

     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      }
  • 相关阅读:
    CodeForces 660D Number of Parallelograms
    【POJ 1082】 Calendar Game
    【POJ 2352】 Stars
    【POJ 2481】 Cows
    【POJ 1733】 Parity Game
    【NOI 2002】 银河英雄传说
    【NOI 2015】 程序自动分析
    【POJ 1704】 Georgia and Bob
    【HDU 2176】 取(m堆)石子游戏
    【SDOI 2016】 排列计数
  • 原文地址:https://www.cnblogs.com/fengmin/p/5612975.html
Copyright © 2011-2022 走看看