• ios中asihttprequest 下载缓存


    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{
        
    }
  • 相关阅读:
    使用ServiceLoader辅助责任链模式
    聊聊ThreadLocal
    Log4J
    Scalable IO in Java
    MySQL的索引
    Git的操作与理解
    阿里校招内推总结
    Executor框架的简要分析
    Java 8 中的ConcurrentHashMap源码分析
    从C#到Swift,Swift学习笔记
  • 原文地址:https://www.cnblogs.com/gcb999/p/3238458.html
Copyright © 2020-2023  润新知