iOS 清除缓存
2016-08-11 18:06
375 查看
转载:http://blog.csdn.net/u012701023/article/details/48413057
缓存的清除对我们程序员来说很重要
软件 运行时间过长 会导致缓存的增加
从而导致手机的运行速度减慢 所以我们必须对缓存重视起来
下面简单介绍 清除缓存的三种方式
- (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
17d38
(![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);
}
//1. 清除缓存第一种
-(void)clearCache
{
//彻底清除缓存第一种方法
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];
}
}
// 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 :%lu",(unsigned long)[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)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];
// }
// }
//}
//2. SDImage第三方清除缓存的方法
//[[SDImageCache sharedImageCache] clearDisk];
//[[SDImageCache sharedImageCache] clearMemory];
//3. 彻底清除缓存第二种方法
//
//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(@"清理成功");
}
@end
缓存的清除对我们程序员来说很重要
软件 运行时间过长 会导致缓存的增加
从而导致手机的运行速度减慢 所以我们必须对缓存重视起来
下面简单介绍 清除缓存的三种方式
- (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
17d38
(![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);
}
//1. 清除缓存第一种
-(void)clearCache
{
//彻底清除缓存第一种方法
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];
}
}
// 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 :%lu",(unsigned long)[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)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];
// }
// }
//}
//2. SDImage第三方清除缓存的方法
//[[SDImageCache sharedImageCache] clearDisk];
//[[SDImageCache sharedImageCache] clearMemory];
//3. 彻底清除缓存第二种方法
//
//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(@"清理成功");
}
@end
相关文章推荐
- iOS textField输入数字时每隔3个数字就用逗号隔开
- 关于iOS本地推送的那些事儿
- iOS开发笔记>> 什么时候会报 Unrecognized selector 的异常?
- 编译iOS版本ipa出现错误 :You are currently running io.js v3.3.1 ...
- 盘点:Xcode 8新特性
- Xcode7中你一定要知道的炸裂调试神技
- iOS 逆向工程 - 学习整理
- IOS友盟 社会化分享 > 社会化iOS组件 > 分享集成
- 关于NSMapTable
- iOS 显示html标签(字体的颜色和大小)
- Weex iOS SDK 集成指南
- iOS JSPatch打补丁包
- ios developer tiny share-20160811
- ios developer tiny share-20160811
- 开发者所需要知道的 iOS 10 SDK 新特性
- IOS启动图设置
- IOS-检测blobck中self
- iOS 获取系统当前时间
- iOS 创建单例
- iOS 页面之间的传值