清理缓存的几种方法

来源:互联网 发布:用友软件使用方法 编辑:程序博客网 时间:2024/04/29 08:57

在开发移动过程中, 清理缓存是最常见的一种功能, 接下来给大家介绍几种清理缓存的方法

第一种:

- (void)action:(id)sender{//彻底清除缓存第一种方法UIButton * button = sender;[button setTitle:@"清理完毕" forState:UIControlStateNormal];NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);NSString *path = [paths lastObject];NSString *str = [NSString stringWithFormat:@"缓存已清除%.1fM", [self folderSizeAtPath:path]];NSLog(@"%@",str);NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:path];for (NSString *p in files) {NSError *error;NSString *Path = [path stringByAppendingPathComponent:p];if ([[NSFileManager defaultManager] fileExistsAtPath:Path]) {[[NSFileManager defaultManager] removeItemAtPath:Path error:&error];}}

第二种:

基于第三方框架SDWebImage的清理缓存的方法

[[SDImageCache sharedImageCache] clearDisk];[[SDImageCache sharedImageCache] clearMemory];

第三种:
彻底清除缓存

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];NSLog(@"%@", cachPath);NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:cachPath];NSLog(@"files :%d",[files count]);for (NSString *p in files) {NSError *error;NSString *path = [cachPath stringByAppendingPathComponent:p];if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {[[NSFileManager defaultManager] removeItemAtPath:path error:&error];}}[self performSelectorOnMainThread:@selector(clearCacheSuccess) withObject:nil waitUntilDone:YES];});}-(void)clearCacheSuccess{NSLog(@"清理成功");}
0 0
原创粉丝点击