IOS开发中清除所有缓存的实例代码

来源:爱站网时间:2020-10-27编辑:网友分享
对我们程序员来说清除缓存是非常重要的,软件运行时间过长会导致缓存增加,从而降低手机的运行速度,本文是爱站技术频道小编整理的IOS开发中清除所有缓存的实例代码,一起进入下文学习吧!

对我们程序员来说清除缓存是非常重要的,软件运行时间过长会导致缓存增加,从而降低手机的运行速度,本文是爱站技术频道小编整理的IOS开发中清除所有缓存的实例代码,一起进入下文学习吧!

计算缓存

NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];
CGFloat fileSize=[self folderSizeAtPath:libPath];
- (float ) folderSizeAtPath:(NSString*) folderPath{
  NSFileManager* manager = [NSFileManager defaultManager];
  if (![manager fileExistsAtPath:folderPath]) return 0;
  NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
  NSString* fileName;
  long long folderSize = 0;
  while ((fileName = [childFilesEnumerator nextObject]) != nil){
    NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
    folderSize += [self fileSizeAtPath:fileAbsolutePath];
  }
  return folderSize/(1024.0*1024.0);
}
- (long long)fileSizeAtPath:(NSString*) filePath{
  NSFileManager* manager = [NSFileManager defaultManager];
  if ([manager fileExistsAtPath:filePath]){
    return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
  }
  return 0;
}

清除缓存

- (void)action:(id)sender
{
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
  NSString *path = [paths lastObject];

  NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:path];

  for (NSString *p in files) {
    NSError *error;
    NSString *Path = [path stringByAppendingPathComponent:p];
    if ([[NSFileManager defaultManager] fileExistsAtPath:Path]) {
      //清理缓存,保留Preference,里面含有NSUserDefaults保存的信息
      if (![Path containsString:@"Preferences"]) {
        [[NSFileManager defaultManager] removeItemAtPath:Path error:&error];
      }
    }else{

    }
  }
}

关于IOS开发中清除所有缓存的实例代码,相信大家都已经有答案了,要知道专业的事情要交给专业的人去做,js.aizhan.com值得你选择。

上一篇:Pickerview文本和随机数在IOS开发中的应用

下一篇:IOS开发中目标动作的控制操作

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载