在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 }
本文详细介绍了在iOS应用中如何通过GCD技术实现异步操作,优化缓存清理过程,避免主线程堵塞,提升用户体验。重点展示了清理缓存的代码实现,包括获取缓存目录、遍历缓存文件并删除操作。
2223

被折叠的 条评论
为什么被折叠?



