iOS 개발 의 1 줄 코드 캐 시 계산 및 캐 시 제거

말 이 많 지 않 아 코드 를 직접 훑 었 다

//
// gzhCache.h
// cache
//
// Created by     on 2020/5/27.
// Copyright © 2020    . All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface gzhCache : NSObject

///       
+(float)filePath;

///     
+(void)clearCache;
@end

NS_ASSUME_NONNULL_END

//
// gzhCache.m
// cache
//
// Created by     on 2020/5/27.
// Copyright © 2020    . All rights reserved.
//

#import "gzhCache.h"

@implementation gzhCache
//       
+ (float)filePath {
  NSString * cachPath = [ NSSearchPathForDirectoriesInDomains ( NSCachesDirectory , NSUserDomainMask , YES ) firstObject ];

  return [ self folderSizeAtPath :cachPath];
}
//         
+ (long long) fileSizeAtPath:( NSString *) filePath{
  NSFileManager * manager = [ NSFileManager defaultManager ];
  if ([manager fileExistsAtPath :filePath]){
    return [[manager attributesOfItemAtPath :filePath error : nil ] fileSize ];
  }
  return 0 ;
}
//            ,    M
+ (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 );
}
//    
+ (void)clearCache {
  NSString * cachPath = [ NSSearchPathForDirectoriesInDomains ( NSCachesDirectory , NSUserDomainMask , YES ) firstObject ];
  NSArray * files = [[ NSFileManager defaultManager ] subpathsAtPath :cachPath];
  NSLog ( @"cachpath = %@" , cachPath);
  for ( NSString * p in files) {
    NSError * error = nil ;
    NSString * path = [cachPath stringByAppendingPathComponent :p];
    if ([[ NSFileManager defaultManager ] fileExistsAtPath :path]) {
      [[ NSFileManager defaultManager ] removeItemAtPath :path error :&error];
    }
  }
  [ self performSelectorOnMainThread : @selector (clearCachSuccess) withObject : nil waitUntilDone : YES ];
}
+ (void)clearCachSuccess {
  NSLog(@"    ");
}
@end
크기 를 조회 할 곳 에서 사용:

NSString *str = [NSString stringWithFormat:@"%.2fM",[gzhCache filePath]];
청소 방법 호출

[gzhCache clearCache];
 이상 의 내용 은 본 채소 의 견 해 를 대표 할 뿐 복 제 는 직접 사용 할 수 있다.만약 타당 하지 않 은 점 이 있 으 면 알려 주 십시오.
자,이 iOS 에서 개발 한 1 줄 코드 로 캐 시 컴 퓨 팅 및 캐 시 제거 에 관 한 글 을 소개 합 니 다.더 많은 iOS 캐 시 컴 퓨 팅 및 캐 시 제거 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기