iOS - 计算缓存

计算缓存的办法
SDImageCache *sd=[[SDImageCache alloc]init];

NSInteger a=[sd getSize];

CGFloat size = a/1024.0/1024.0;

self.clearLabel.text = [NSString stringWithFormat:@"当前缓存%.2fKB",size];
清除缓存
-(void)action:(UITapGestureRecognizer *)tap {

//清理缓存

SDImageCache *sd=[[SDImageCache alloc]init];

[sd clearDisk];

self.clearLabel.text = @"当前缓存0KB";

}
清除缓存步骤与显示弹框

单例(一个应用程序只有一个对象)

SDImageCache *sdImageCache = [SDImageCache sharedImageCache];

NSString *str = [NSString stringWithFormat:@"缓存大小%.2fM.是否清除缓存?",     [sdImageCache checkTmpSize]];

NSString *cancelStr = @"取消";

    if ([sdImageCache checkTmpSize] == 0) {

    str = @"您还没有缓存, 不需要清理哦!";

    cancelStr = nil;

}

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:str delegate:self cancelButtonTitle:cancelStr otherButtonTitles:@"确定", nil];

// 这里执行协议方法的对象是这个视图控制器对象(协议方法是给别人用的)

alertView.delegate = self;

[alertView show];

[alertView release];

// alertView协议方法执行清除缓存的方法

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;{

    if (buttonIndex == 1) {

        [[SDImageCache sharedImageCache] clearDisk];
    }
}

// 计算缓存文件大小方法的实现

- (float)checkTmpSize {

    float totalSize = 0;

    NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:_diskCachePath];

    for (NSString *fileName in fileEnumerator) {

    NSString *filePath = [_diskCachePath stringByAppendingPathComponent:fileName];

    NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil];

    unsigned long long length = [attrs fileSize];

    totalSize += length / 1024.0 / 1024.0;

        } // NSLog(@"tmp size is %.2f",totalSize);
   
     return totalSize;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,838评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,222评论 30 472
  • 元认知能力,就是思考自己的思考模式的能力,就是不断检视自己的一种能力。搞定的管理5个阶段就是很好的提升元认知能力的...
    摇摇说说阅读 495评论 0 1