asi中下载缓存第一种方法
#import <UIKit/UIKit.h> #import "ASIHTTPRequest.h" #import "ASIDownloadCache.h" @interface ViewController : UIViewController<ASIHTTPRequestDelegate> - (IBAction)click:(id)sender; @property (retain, nonatomic) IBOutlet UIImageView *img1; @end #import "ViewController.h" @interface ViewController () { } @property(nonatomic,retain)NSDate *startData; @property(nonatomic,retain)NSDate *endData; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)click:(id)sender { [self download]; } -(void)download{ self.startData=[NSDate date]; NSLog(@"start-->%@",self.startData); __block ASIHTTPRequest *request=nil; NSString *url=@"http://d.hiphotos.baidu.com/album/w%3D2048/sign=349954701b4c510faec4e51a5461272d/d1a20cf431adcbefc5d4f4beadaf2edda2cc9fa2.jpg"; request=[ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]]; request.delegate=self; //设置缓存时间 request.secondsToCache=24*60*60*7;//一周 NSString *cachePath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; cachePath =[cachePath stringByAppendingPathComponent:@"res"]; //缓存类 ASIDownloadCache *_cache=[ASIDownloadCache sharedCache]; [request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy]; [request setDownloadCache:_cache]; [request setCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy]; [request startAsynchronous]; } -(void)success:(ASIHTTPRequest *)request{ if ([request didUseCachedResponse]) { NSLog(@"来自于缓存"); } else{ NSLog(@"NO"); } } -(void)requestFinished:(ASIHTTPRequest *)request{ if ([request didUseCachedResponse]) { self.endData=[NSDate date]; NSLog(@"来缓存-->%@",self.endData); self.img1.image=[UIImage imageWithData:[request responseData]]; } else{ self.endData=[NSDate date]; NSLog(@" NO-->%@",self.endData); self.img1.image=[UIImage imageWithData:[request responseData]]; } } -(void)requestFailed:(ASIHTTPRequest *)request{ } - (void)dealloc { [_img1 release]; [self.startData release]; [self.endData release]; [super dealloc]; } @end
第二设置缓存
-(void)download{ __block ASIHTTPRequest *request=nil; NSString *url=@"http://f.hiphotos.baidu.com/album/w%3D2048/sign=288b34a9e4dde711e7d244f693d7cc1b/18d8bc3eb13533fa7f621782a9d3fd1f40345b42.jpg"; request=[ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]]; request.delegate=self; //设置缓存时间 request.secondsToCache=24*60*60*7;//一周 //设置完成时回调方法 [request setDidFinishSelector:@selector(success:)]; NSString *cachePath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; cachePath =[cachePath stringByAppendingPathComponent:@"res"]; //缓存类 ASIDownloadCache *_cache=[ASIDownloadCache sharedCache]; //设置缓存目录 [_cache setStoragePath:cachePath]; //设置缓存策略 [_cache setDefaultCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy]; //request永久存储 [request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy]; [request setDownloadCache:_cache]; [request startAsynchronous]; } -(void)success:(ASIHTTPRequest *)request{ if ([request didUseCachedResponse]) { NSLog(@"来自于缓存"); } else{ NSLog(@"NO"); } } -(void)requestFailed:(ASIHTTPRequest *)request{ }