清理缓存
在IOS项目里,有时候会执行一些大块的操作,例如访问网络,大的文件读写,删除等操作,如果直接在主线程里执行,往往会堵塞UI,这时候不得不考虑使用异步操作,使用GCD技术可以很方便的进行异步操作。
一段清理缓存的代码如下:
1 dispatch_async( 2 dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) 3 , ^{ 4 NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 5 6 NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:cachPath]; 7 NSLog(@"files :%d",[files count]); 8 for (NSString *p in files) { 9 NSError *error; 10 NSString *path = [cachPath stringByAppendingPathComponent:p]; 11 if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { 12 [[NSFileManager defaultManager] removeItemAtPath:path error:&error]; 13 } 14 } 15 [self performSelectorOnMainThread:@selector(clearCacheSuccess) withObject:nil waitUntilDone:YES];}); 16 17 -(void)clearCacheSuccess 18 { 19 NSLog(@"清理成功"); 20 }
激情为梦想而生