在APP开发中,大量的图片或消息占用系统内存,造成一堆垃圾信息,所以开发清除缓存功能就显得必不可少了。

  代码段1:获取文件的大小

  1. - (long long) fileSizeAtPath:(NSString*) filePath{
  2.  
  3. NSFileManager* manager = [NSFileManager defaultManager];
  4.  
  5. if ([manager fileExistsAtPath:filePath]){
  6.  
  7. return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
  8.  
  9. }
  10.  
  11. return ;
  12.  
  13. }

  代码段2:获取文件的大小

  1. //遍历文件夹获得文件夹大小,返回多少M
  2.  
  3. - (float ) folderSizeAtPath:(NSString*) folderPath{
  4.  
  5. NSFileManager* manager = [NSFileManager defaultManager];
  6.  
  7. if (![manager fileExistsAtPath:folderPath]) return ;
  8.  
  9. NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
  10.  
  11. NSString* fileName;
  12.  
  13. long long folderSize = ;
  14.  
  15. while ((fileName = [childFilesEnumerator nextObject]) != nil){
  16.  
  17. NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
  18.  
  19. folderSize += [self fileSizeAtPath:fileAbsolutePath];
  20.  
  21. }
  22.  
  23. return folderSize/(1024.0*1024.0);
  24.  
  25. }

  代码段3:清除缓存功能方法一

  1. .清除缓存第一种
  2.  
  3. - (void)action:(id)sender
  4.  
  5. {
  6.  
  7. //彻底清除缓存第一种方法
  8.  
  9. UIButton * button = sender;
  10.  
  11. [button setTitle:@"清理完毕" forState:UIControlStateNormal];
  12.  
  13. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
  14.  
  15. NSString *path = [paths lastObject];
  16.  
  17. NSString *str = [NSString stringWithFormat:@"缓存已清除%.1fM", [self folderSizeAtPath:path]];
  18.  
  19. NSLog(@"%@",str);
  20.  
  21. NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:path];
  22.  
  23. for (NSString *p in files) {
  24.  
  25. NSError *error;
  26.  
  27. NSString *Path = [path stringByAppendingPathComponent:p];
  28.  
  29. if ([[NSFileManager defaultManager] fileExistsAtPath:Path]) {
  30.  
  31. [[NSFileManager defaultManager] removeItemAtPath:Path error:&error];
  32.  
  33. }
  34. }
  35. }

  代码段4:清除缓存功能方法二

  1. [[SDImageCache sharedImageCache] clearDisk];
  2.  
  3. [[SDImageCache sharedImageCache] clearMemory];

iOS清除缓存功能开发的更多相关文章

  1. iOS开发 - Swift实现清除缓存功能

    前言: 开发移动应用时,请求网络资源是再常见不过的功能.如果每次都去请求,不但浪费时间,用户体验也会变差,所以移动应用都会做离线缓存处理,其中已图片缓存最为常见. 但是时间长了,离线缓存会占用大量的手 ...

  2. Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能. 下面是一个效果图 ...

  3. Android记录20-获取缓存大小和清除缓存功能

    Android开发记录20-获取缓存大小和清除缓存功能 转载请注明:IT_xiao小巫 博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要给大家分享的如何获取应用缓存 ...

  4. iOS 清除缓存

    iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒.它包含三个文件夹: Documents: 苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下 ...

  5. Android清除缓存功能来实现

    我们都知道在Android的设置->应用程序中能够查看应用程序的相关信息,当中有一个功能是清除缓存. 如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  6. android 清除缓存功能

    本应用数据清除管理器 DataCleanManager.java   是从网上摘的 忘了 名字了 对不住了 载入一个webview   产生缓存  众所周知的webview是产生缓存的主要原因之中的一 ...

  7. iOS 清理缓存功能的实现第二种方法

    /** * 清理缓存第二种方法 * * @param sender <#sender description#> */ - (void)clearCache:(id)sender { // ...

  8. iOS 清理缓存功能实现第一种方法

    添加一个提示框效果导入第三方MBProgressHUD #import "MBProgressHUD+MJ.h" /** * 清理缓存第一种方法 */ -(void)clearCa ...

  9. IOS 沙盒与清除缓存

    SandBox,沙盒机制,是一种安全体系.我们所开发的每一个应用程序在设备上会有一个对应的沙盒文件夹,当前的程序只能在自己的沙盒文件夹中读取文件,不能访问其他应用程序的沙盒.在项目中添加的所有非代码的 ...

随机推荐

  1. 怎么获取Android应用程序的上下文

    在一个应用里面,有很多activity,而这些activity之间经常要进行互相启动.往复跳转.还有就是通过Notification启动.当activity多了之后,如果设置他的模式为单例模式,或者不 ...

  2. il code swtich

    public enum RangeItemType { CompanyPicker = 1, //公司STR_COMPANY BrDivPicker = 2, //分行STR_BRDIV Depart ...

  3. .NET 单点登录解决方案

    这里指的单点,泛指在WEB服务端,一个账户同一时刻只能存在一个票据! 大家开发中可能都碰到的一个问题,怎么使同一个用户,在同一时间内只允许登录一次. 很多人都会想到在数据库中用一个标识字段,登录进去置 ...

  4. Laravel5.1 请求

    这篇主要说说Request 每当用户访问我们的网站功能时都会用到它 我们可以使用Request中的一些数据来做出适当的相应. 1 常用的属性和方法 我们可以从Request中取到一些重要属性来做一些逻 ...

  5. Unity3d NGUI UICheckbox

    单选按钮: 一,常用属性: 1,CheckSprite:选中后,才显示的Sprite,即为“选中”状态; 2,Starts Checked:true,一开始就显示“选中”状态; 3,RadioButt ...

  6. iOS学习笔记(十)——iOS真机调试

    前面一直使用模拟器运行,今天使用了真机调试,这一篇介绍一下真机调试.真机调试需要99$注册,如果有注册过的账号,也可以使用注册账号邀请你加入一个账号下,注册账号可以给你分配权限,我也是使用的邀请成为开 ...

  7. 前端 为什么我选择用框架而不是Jquery

    对于很多习惯用Jquery的前端甚至后端,都很不解,为什么不用Jquery而是框架.觉得框架学起来麻烦,成本高,今天我以我浅薄的知识来总结一下为什么前台开发选择用框架: 前台开发,主要的性能是卡在回流 ...

  8. RocketMq的安装使用

    RocketMq的安装使用 .一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 1.下载 1.1地址:http://rocketmq.apache.org/rele ...

  9. CSS3 Flex布局(容器)

    一.flex-direction属性 row(默认值):主轴为水平方向,起点在左端. row-reverse:主轴为水平方向,起点在右端. column:主轴为垂直方向,起点在上沿. column-r ...

  10. 解决Raize日历控件显示的问题

    解决Raize日历控件显示的问题 近自己的程序被测试人员发现一个小问题,就是程序中的日历选择框,显示中的“星期一.星期二....”都显示成了“星.....”,我自己看了代码,原来是raize的控件问题 ...