Three20学习之清空网络缓存
2013-03-19 15:17
190 查看
使用Three20框架会产生很多的缓存文件,缓存文件存放到应用程序的caches/Three20/文件夹下。时间久了就会占用很大的存储空间,这时需要提供清空缓存的入口,如在设置界面:
![](http://img.my.csdn.net/uploads/201303/19/1363677189_8164.png)
在删除之前我们需要显示缓存的大小,提示一下当前缓存是否需要清空:
计算缓存大小的方法如下:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"/Three20/"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:path]) {
NSEnumerator *childEnumber = [[fileManager subpathsOfDirectoryAtPath:path error:nil] objectEnumerator];
unsigned long long folderSize = 0;
NSString *fileName;
while ((fileName = [childEnumber nextObject]) != nil) {
NSString *childFilePath = [path stringByAppendingPathComponent:fileName];
folderSize += [fileManager attributesOfItemAtPath:childFilePath error:nil].fileSize;
}
dispatch_async(dispatch_get_main_queue(), ^(void){
clearCacheButton.text = [NSString stringWithFormat:@"清空图片缓存( %0.1f Mb)", (float)folderSize/1000/1000];
[self reloadTableCells];
});
}
});
GCD的使用请参考:iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
主要是缓存文件过多时计算文件大小需要一定的时间。
清空缓存的方法:
[[TTURLCache sharedCache] removeAll:YES];
参数为YES时直接从磁盘清除文件。
有问题请留言,大家一起交流学习!
说明:转载请注明出处!
![](http://img.my.csdn.net/uploads/201303/19/1363677189_8164.png)
在删除之前我们需要显示缓存的大小,提示一下当前缓存是否需要清空:
计算缓存大小的方法如下:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"/Three20/"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:path]) {
NSEnumerator *childEnumber = [[fileManager subpathsOfDirectoryAtPath:path error:nil] objectEnumerator];
unsigned long long folderSize = 0;
NSString *fileName;
while ((fileName = [childEnumber nextObject]) != nil) {
NSString *childFilePath = [path stringByAppendingPathComponent:fileName];
folderSize += [fileManager attributesOfItemAtPath:childFilePath error:nil].fileSize;
}
dispatch_async(dispatch_get_main_queue(), ^(void){
clearCacheButton.text = [NSString stringWithFormat:@"清空图片缓存( %0.1f Mb)", (float)folderSize/1000/1000];
[self reloadTableCells];
});
}
});
GCD的使用请参考:iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
主要是缓存文件过多时计算文件大小需要一定的时间。
清空缓存的方法:
[[TTURLCache sharedCache] removeAll:YES];
参数为YES时直接从磁盘清除文件。
有问题请留言,大家一起交流学习!
说明:转载请注明出处!
相关文章推荐
- android 项目学习随笔六(网络缓存)
- 【JAVA学习】session 清理缓存的理解 和 如何 清空缓存中的数据
- Android加载网络图片学习过程,涉及到本地缓存
- Android异步加载学习笔记之四:利用缓存优化网络加载图片及ListView加载优化
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- Android学习(34) -- 带缓存的网络图片下载
- Android网络图片加载缓存处理库的使用---第三方库学习笔记(五)
- Android网络图片加载缓存处理库的使用---第三方库学习笔记(五)
- 【Hibernate学习笔记】Session清空缓存与清理缓存
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- Windowphone访问网络图片-本地缓存-封装CacheNetworkFile.dll的学习
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- windows――清空网络连接缓存
- 网络编程调参学习————三次握手中的接收缓存和通告窗口
- Android之okHttpClient+handler+LruCache缓存网络图片学习笔记(通用MVP模式)
- Android网络框架volley学习(八)缓存Cache简析
- android 项目学习随笔六(网络缓存)
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- Android-缓存网络图片(MVP模式)学习笔记
- Android 异步加载网络图片并缓存到本地 软引用 学习分享