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      }
  • 相关阅读:
    SV——override
    SV——声明和例化
    SV——automatic
    SV——类型转换$cast
    C++——局部变量、全局变量、静态变量与动态对象的性质(转载)
    C++——动态分配内存
    异步复位,同步释放(转)
    异步复位中的recovery time和removal time(转)
    UVM——virtual sequencer和virtual sequence
    软件工程 实践者的研究方法 第38章答案
  • 原文地址:https://www.cnblogs.com/fengmin/p/5612975.html
Copyright © 2011-2022 走看看