SDWebImage下载和缓存图片(UIImge)

1.用SDWebImage下载图片

#import "SDWebImageManager.h"
 [[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:@"anurl"] options:0
                                                               progress:^(NSInteger receivedSize, NSInteger expectedSize)
                 {
                     //处理下载进度
                 } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
                     completedCount ++ ;
                     if (error) {
                         DDLogDebug(@"error is %@",error);
                     }
                     if (image) {
                        //图片下载完成  在这里进行相关操作,如加到数组里 或者显示在imageView上
                     }
                    }
                 }];

2.图片缓存

 //需要导入的头文件
#import "SDImageCache.h"

 UIImage *image = [UIImage imageNamed:@"home_btn_skip"];
 [[SDImageCache sharedImageCache] storeImage:image forKey:@"anUrlString" toDisk:NO];

//下方是用SDWebimage加载刚刚缓存的图片
//    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0 ,300 ,300 )];
//    [imageView setImageWithURL:[NSURL URLWithString:@"anUrlString"]];
//    [self.view addSubview:imageView];

[[SDImageCache sharedImageCache] storeImage:image forKey:@"anUrlString" toDisk:NO];

这个方法中forkey 是image缓存所对应的键 一般都是与一张图片的url对应。toDisk 是说是否缓存到本地。SDWebimage 下载图片时候会先去缓存根据提供的url寻找缓存中是否有这个图片 如果有就加载 ,如果没有就进行网络请求。

时间: 2024-08-24 08:25:48

SDWebImage下载和缓存图片(UIImge)的相关文章

检测SDWebImage有没有缓存图片 IOS 获取网络图片大小

NSURL *url = [NSURL URLWithString:[model.content objectForKey:@"image"]];             //请求网络地址数据的同步方法             //因为这个方法在子线程(全局队列)中执行,所以不需要考虑死线程的问题             SDWebImageManager *manager = [SDWebImageManager sharedManager];              [manag

多图片下载、缓存及SDWebImage

首先介绍一下如果不使用SDWebImage,自己写代码实现多图片的下载及缓存的思路: 这里只提供了一个思路作为了解,因为多图片下载.缓存的实现,使用三方SDWebImage特别的简单,以后开发过程中也是使用这种方式,不用自己写代码,所以这里只提供一个思路,关于SDWebImage的使用将在最后进行解释: 1 //声明一个用来缓存图片的可变字典 imagesDict,字典的value值为图片,key值为图片网址 2 //声明一个字典用来存储操作对象value值为(NSOperation *oper

iOS网络编程(三) 异步加载及缓存图片---->SDWebImage

@SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https://github.com/rs/SDWebImage 下载SDWebImage开源包2.将类包拖入工程,再导入MapKit.framework.ImageIO.framework两个框架3.SDWebImage是支持ARC的,在MRC的工程中要注意,可参考MRC工程配置ARC4.注意:SDWebImag

sdwebimage缓存图片对比问题

开发IOS项目的时候,发现一个关于第三方框架sdwebimage的图片缓存的问题.搜了一下百度,发现有人已经提出同样的问题,如下: 有个问题请教一下各位,就是用sdwebimage下载图片的时候会缓存到手机上,那么我把同一个url下面的图片换了,这个时候再用sdwebimage加载这个url,他是用缓存的还是重新下载了? 如果,她加载了缓存的图片那么就错了,因为这个url下的图片已经换掉了,如果他从新下载了,他是如何对比缓存图片的不同的. 然后,我搜到了解答,答案如下: 答案:使用缓存. 原因:

SDWebImage异步下载和缓存的源码剖析

前言: 在移动app开发过程中,考虑到手机流量.网速以及内存等因素,当我们的app需要频繁的访问网络时,对网络优化这块的要求就显得尤为重要. 比如某个app需要经常重复显示很多张网络图片的时候,如果在每次需要显示同一张网络图片,都要访问网络进行下载操作,那就显得很不合理了. 因为那样会相当耗时,且耗流量.这就需要对已下载好的网络图片进行缓存操作. 我目前开发的一个项目属于展示类app,一个需要频繁处理网络图片的应用,涉及复杂的异步下载和异步缓存等处理. 在使用SDWebImage类库进行网络图片

【iOS开发之旅】AFNetworking与SDWebImage下载图片

AFNetworking与SDWebImage下载图片 // // ViewController.m // AFNetworkingDemo // // Created by ChenQianPing on 16/1/31. // Copyright © 2016年 chenqp. All rights reserved. // #import "ViewController.h" #import "AFNetworking.h" #import "UII

Picasso:一个专为Android打造的强大的图片下载和缓存库

简介 在Android应用中,图片消费了大量的资源,却为应用提供了很好的视觉体验.幸运的是,Picasso为你的应用提供了非常容易的图片加载方式--通常一行代码就可以搞定! Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); Picasso处理了Android上图片加载的许多坑: 1)在Adapter中,处理了ImageView的循环利用和取消下载. 2)耗费最小的内存处理了复杂的图

android:强大的图片下载和缓存库Picasso

1.Picasso简介 Picasso是Square公司出品的一个强大的图片下载和缓存图片库.官方网址是:http://square.github.io/picasso/ 只需要一句代码就可以将图片下载并设置到ImageView上. Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 2.主要特点 2.1Adapter downloads 使用ListView,GridView的时候

Android图片下载以及缓存框架

实际开发中进行图片下载以及缓存的框架 介绍一下开发中常见图片加载框架的使用和对比一下优缺点. 1.Picasso 框架 在Android中开发,常需要从远程获取图片并显示在客户端,当然我们可以使用原生HttpURLConnection和AsyncTask等操作来完成,但并不推荐,因为这样不仅需要我们编写大量的代码, 还需要处理缓存和下载管理等,最好自己封装成库或者采用第三方库: 使用HttpUrlConnection和AsyncTask实现远程图片下载: 使用HttpUrlConnection和