清除缓存的实现

 // 在子线程计算缓存大小
        dispatch_async(dispatch_get_global_queue(0, 0), ^{// 获得缓存文件夹路径
            unsigned long long size = file.fileSize;
            size += [SDImageCache sharedImageCache].getSize;
            NSString *sizeText = nil;
            if (size >= pow(10, 9)) { // size >= 1GB
                sizeText = [NSString stringWithFormat:@"%.2fGB", size / pow(10, 9)];
            } else if (size >= pow(10, 6)) { // 1GB > size >= 1MB
                sizeText = [NSString stringWithFormat:@"%.2fMB", size / pow(10, 6)];
            } else if (size >= pow(10, 3)) { // 1MB > size >= 1KB
                sizeText = [NSString stringWithFormat:@"%.2fKB", size / pow(10, 3)];
            } else { // 1KB > size
                sizeText = [NSString stringWithFormat:@"%zdB", size];
            }
// 生成文字
            NSString *text = [NSString stringWithFormat:@"清除缓存(%@)", sizeText];

            // 回到主线程
            dispatch_async(dispatch_get_main_queue(), ^{
                // 设置文字
              // 恢复点击事件
                self.userInteractionEnabled = YES;
            });
        });
    }
    return self;
}
/**
 *  清除缓存
 */
- (void)clearCache
{
    // 弹出指示器
    [SVProgressHUD showWithStatus:@"正在清除缓存..." maskType:SVProgressHUDMaskTypeBlack];

    // 删除SDWebImage的缓存
    [[SDImageCache sharedImageCache] clearDiskOnCompletion:^{
        // 删除自定义的缓存
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            NSFileManager *mgr = [NSFileManager defaultManager];
            [mgr removeItemAtPath:file error:nil];
            [mgr createDirectoryAtPath:XMGCustomCacheFile withIntermediateDirectories:YES attributes:nil error:nil];
            // 所有的缓存都清除完毕
            dispatch_async(dispatch_get_main_queue(), ^{
                // 隐藏指示器
                [SVProgressHUD dismiss];

                // 设置文字
                self.textLabel.text = @"清除缓存(0B)";
            });
        });
    }];
}
时间: 2024-07-30 18:04:19

清除缓存的实现的相关文章

iOS清除缓存

[objc] view plaincopy #pragma mark === 暂时不用清除缓存===== -(void)myClearCacheAction{ dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) , ^{ NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDoma

如何只使用一句代码实现清除缓存的功能

其实这很简单的(恶作剧咯^_^) <a href="javascript:alert('清除成功');"> 清除缓存</a>

Xcode清除缓存、清理多余证书

Xcode清除缓存.清理多余证书 1.删除Xcode中多余的证书provisioning profile 手动删除: Xcode6 provisioning profile path: ~/Library/MobileDevice/Provisioning Profiles 2.清理Xcode编译项目产生的缓存垃圾 (Xcode永久了,会产生很多项目编译缓存,占用一大堆硬盘空间,此时需要对该目录进行清理) 手动删除: Xcode编译项目缓存垃圾的目录: ~/Library/Developer/X

(一一七)基本文件操作 -SDWebImage清除缓存 -文件夹的大小计算

在iOS的App沙盒中,Documents和Library/Preferences都会被备份到iCloud,因此只适合放置一些记录文件,例如plist.数据库文件.缓存一般放置到Library/Caches,tmp文件夹会被系统随机清除,不适宜防止数据. [图片缓存的清除] 在使用SDWebImage时,图片被大量的缓存,有时需要获取缓存的大小以及清除缓存. 要获取缓存大小,使用SDImageCache单例的getSize方法拿到byte为单位的缓存大小,注意计算时按1K=1000计算. 拿到M

UIWebView清除缓存和cookie[转]

现在项目遇到一个问题,游戏底层用Cocos2d-x,公告UI实现是用的UIWebView, 然后第一次在有网络的环境下运行公告UI,会加载url链接,同时就会自动存入缓存,当下次手机没有网络的环境下,会加载缓存,给玩家UIWebView链接良好的错觉! 所以每次加载完URL链接后, 同时把缓存也马上清理. 源码如下: //清除cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage shar

ios获取缓存文件的大小并清除缓存

移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类app的标配功能. 今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取.清除缓存文件的实现. 1. 获取缓存文件的大小-( float )readCacheSize{    NSString *cachePath = [NSSearchPathForDirectoriesInDomains (

iOS开发 -李洪强-清除缓存

// //  SetViewController.m //  dfhx // //  Created by dfhx_iMac_001 on 16/4/5. //  Copyright © 2016年 luoyun. All rights reserved. // #import "SetViewController.h" @interface SetViewController ()<UITableViewDelegate,UITableViewDataSource> @

如何知道缓存的大小,并且怎样清除缓存 -----ios

首先要了解怎么去拿到沙盒中的Cache文件路径 NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]; 这个方法可以拿到沙盒中的Cache路径 缓存一般都会在这个文件夹中. // 获取文件夹尺寸 + (NSInteger)getDirectorySize:(NSString *)directoryPath {     // 获取文件管理者     NSFileManager *mgr =

清除缓存功能的实现代码

缓存文件存储在沙盒文件夹Caches中,实现清除缓存,主要就是实现找到文件 - - 删除文件(其中涉及到计算文件大小) 以下是实现清除缓存的主要代码 //获取缓存路径 - (NSString *)getCache{ NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; NSLog(@"%@",cachePath)

微信内置浏览器无法清除缓存问题

微信开发比较头疼的一个情况就是缓存难以清除,然而奇怪的是微信app在IOS中是可以刷新页面的,但是Android中却不知道基于什么考虑,无法清除 缓存也没有刷新功能,这个就给开发者设置了不小的障碍,哪有页面是最好就不改的,然后如果去改,微信浏览器缓存着css.图片,这样改完后看效果就变得相 对费劲了. 我 上网查过,遇到这个蛋疼问题的不止我一个,寻寻觅觅却找不到解决办法的也不止我一个,有人说去微信“设置”.“通用”中“清除微信存储空间”,我想问,兄 弟你这样弄成功了吗?这个清理看似根本不是清理缓