普通for循环遍历数据
使用for循环遍历数据,是同步的, 串行的
for (NSInteger i = 0; i < 10; i++)
{
NSLog(@"%zd ---- %@",i,[NSThread currentThread]);
}
GCD快速迭代:
开子线程和主线程一起完成遍历任务,任务的执行是并发的
/**
第一个参数:遍历次数
第一个参数:队列(必须是并发队列)
第一个参数:index 索引
*/
dispatch_apply(100000, dispatch_get_global_queue(0, 0), ^(size_t index) {
NSLog(@"%zd ---- %@",index,[NSThread currentThread]);
});
示例代码:以移动文件案例为主
#import "ViewController.h"
@implementation ViewController
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self movefile];
}
// 使用for循环
- (void)movefile
{
// 1.拿到文件路径
NSString *fromPath = @"/Users/liuzhiyuan/Desktop/from";
// 2.获得目标文件路径
NSString *toPath = @"/Users/liuzhiyuan/Desktop/to";
// 3.得到目录下面的所有文件
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *subPaths = [fileManager subpathsAtPath:fromPath];
NSLog(@"%@",subPaths);
// 4.遍历所有文件,然后执行剪切操作
NSInteger count = subPaths.count;
for (NSInteger index = 0; index < count; index++) {
// 4.1拼接文件全路径
NSString *fullPath = [fromPath stringByAppendingPathComponent:subPaths[index]];
NSLog(@"%@",fullPath);
NSString *toFullPath = [toPath stringByAppendingPathComponent:subPaths[index]];
// 4.2剪切操作
[fileManager moveItemAtURL:[NSURL fileURLWithPath:fullPath] toURL:[NSURL fileURLWithPath:toFullPath ] error:nil];
}
}
// 使用GCD快速迭代
- (void)moveGCDfile
{
// 1.拿到文件路径
NSString *fromPath = @"/Users/liuzhiyuan/Desktop/from";
// 2.获得目标文件路径
NSString *toPath = @"/Users/liuzhiyuan/Desktop/to";
// 3.得到目录下面的所有文件
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *subPaths = [fileManager subpathsAtPath:fromPath];
NSLog(@"%@",subPaths);
// 4.遍历所有文件,然后执行剪切操作
NSInteger count = subPaths.count;
dispatch_apply(count, dispatch_get_global_queue(0, 0), ^(size_t index) {
// 4.1拼接文件全路径
NSString *fullPath = [fromPath stringByAppendingPathComponent:subPaths[index]];
NSLog(@"%@",fullPath);
NSString *toFullPath = [toPath stringByAppendingPathComponent:subPaths[index]];
// 4.2剪切操作
[fileManager moveItemAtURL:[NSURL fileURLWithPath:fullPath] toURL:[NSURL fileURLWithPath:toFullPath ] error:nil];
});
}
@end
网友评论