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

    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];
                }];
         }
  • 相关阅读:
    hdu-5492 Find a path(dp)
    hdu-5493 Queue(二分+树状数组)
    bzoj-2243 2243: [SDOI2011]染色(树链剖分)
    codeforces 724
    codeforces 422A A. Borya and Hanabi(暴力)
    codeforces 442C C. Artem and Array(贪心)
    codeforces 442B B. Andrey and Problem(贪心)
    hdu-5918 Sequence I(kmp)
    poj-3739. Special Squares(二维前缀和)
    hdu-5927 Auxiliary Set(树形dp)
  • 原文地址:https://www.cnblogs.com/jukaiit/p/5571511.html
Copyright © 2011-2022 走看看