SDWebImage手动清除缓存的方法

1.找到SDImageCache类

2.添加如下方法:

[objc] view plaincopyprint?

  1. - (float)checkTmpSize
  2. {
  3. float totalSize = 0;
  4. NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:diskCachePath];
  5. for (NSString *fileName in fileEnumerator)
  6. {
  7. NSString *filePath = [diskCachePath stringByAppendingPathComponent:fileName];
  8. NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil];
  9. unsigned long long length = [attrs fileSize];
  10. totalSize += length / 1024.0 / 1024.0;
  11. }
  12. //    NSLog(@"tmp size is %.2f",totalSize);
  13. return totalSize;
  14. }
- (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;
}

3.在设置里这样使用

[objc] view plaincopyprint?

  1. #pragma 清理缓存图片
  2. - (void)clearTmpPics
  3. {
  4. [[SDImageCache sharedImageCache] clearDisk];
  5. //    [[SDImageCache sharedImageCache] clearMemory];//可有可无
  6. DLog(@"clear disk");
  7. float tmpSize = [[SDImageCache sharedImageCache] checkTmpSize];
  8. NSString *clearCacheName = tmpSize >= 1 ? [NSString stringWithFormat:@"清理缓存(%.2fM)",tmpSize] : [NSString stringWithFormat:@"清理缓存(%.2fK)",tmpSize * 1024];
  9. [configDataArray replaceObjectAtIndex:2 withObject:clearCacheName];
  10. [configTableView reloadData];
  11. }

SDWebImage手动清除缓存的方法

时间: 2024-10-12 02:58:00

SDWebImage手动清除缓存的方法的相关文章

iOS中 SDWebImage手动清除缓存的方法 技术分享

1.首先要找到SDImageCache类.才可以以下的方法 2.添加如下方法: [objc] view plaincopy - (float)checkTmpSize { float totalSize = 0; NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:diskCachePath]; for (NSString *fileName in fileEnumera

linux中手动释放缓存的方法

linux中手动释放缓存的方法  Linux释放内存的相关知识介绍: 在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好.但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空 间影响性能,例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.,此时就需 要执行释放内存(清理缓存)的操作了. Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的

jquery ajax清除缓存的方法

function cityListChange(cityCode){ //{lon=121.491121, name=上海, province=上海市, telPrefix=021, provinceid=310000, code=310100, lat=31.243466, platePrefix=沪} $.ajax({ type: "get", dataType: "json", url: "${contextPath}/carUpload/cityL

varnish4配置手动清除缓存

varnish4清楚缓存方法主要有,通过varnishadm 管理,或vcl配置. 其中vcl配置可以让客户端手动请求清楚缓存,以保证局部数据及时更新,而不用重启varnish服务器. 配置方法: #允许清除缓存IP集 acl purge_ip{     "127.0.0.1";     "localhost"; } sub vcl_recv {    if(req.method ~ "update"){       if(client.ip ~

清除缓存的方法(计算)

1.计算 - (float)checkTmpSize { float totalSize = 0; NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:diskCachePath]; for (NSString *fileName in fileEnumerator) { NSString *filePath = [diskCachePath stringByAppend

java 手动清理缓存的方法

有时候会感觉代码如何也查不出问题,可是缓存就是清好几遍了 这个时候就试试手动清理缓存 到你的编译路径下面 E:\java-workspace\wem\work\org\apache\jsp 手动删除你的文件目录下面的运行的文件就行了 ,系统再次运行会再次编译的

APP 清除缓存的方法

dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) , ^{ NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES) objectAtIndex:0]; NSArray *files = [[NSFileManager defaultManager] s

手动清除缓存

1.NSString *home = NSHomeDirectory();获取应用程序的目录路径, 目录下有三个文件夹:Documents.Library.tmp Documents:主要存放:使用该路径放置关键数据,也就是不能通过App重新生成的数据 Library:主要存放:缓存文件 ,可以实时生成. tmp:存放临时文件,关闭时会自动清除. 2. 把要清除的文件夹内容写出来. 根据前面的home路径 去前往文件夹查看要清除的文件夹在Library/Caches/default/下 NSSt

Linux手动释放缓存的方法

Linux释放内存的命令: syncecho 1 > /proc/sys/vm/drop_caches drop_caches的值可以是0-3之间的数字,代表不同的含义:0:不释放(系统默认值)1:释放页缓存2:释放dentries和inodes3:释放所有缓存 释放完内存后改回去让系统重新自动分配内存.echo 0 >/proc/sys/vm/drop_caches free -m #看内存是否已经释放掉了. 如果我们需要释放所有缓存,就输入下面的命令:echo 3 > /proc/s