iOS项目里面如何清理缓存
在正式讲解以前,请先看一下以下图片,在以下这款APP种设有清理缓存,开始我以为很复杂,在弄明白之后,其实就是几句代码就解决了。
在实际项目开发中,我们很多的文件都会缓存在沙盒里面,比如:照片。所以设置有清理缓存按钮可以为APP瘦身。也就是说,清理缓存实践上就是清理沙盒目录里面的文件。
具体怎么实现请看代码:
1 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 2 //沙盒的Document目录 3 NSString *path = [paths objectAtIndex:0]; 4 NSLog(@"%@",path);//输出沙盒路径 5 NSFileManager *filemanger = [NSFileManager defaultManager];//创建文件管理器 6 [filemanger removeItemAtPath:path error:nil];//删除路径里面的文件
开始我以为上面写的缓存大小是真的,可是看了代码才知道。。。
1 // 获取文件路径 2 cachPath= [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES) objectAtIndex:0]; 3 4 files= [[NSFileManager defaultManager] subpathsAtPath:cachPath]; 5 6 caches=[NSString stringWithFormat:@"缓存大小为%0.2fM,您确定要清理吗",(float)([files count])/30];
从代码容易看出它是用文件个数除以30来输出的缓存大小😢。当缓存文件大于0时,就可以调用 removeItemAtPath的方法来清理缓存了。