iOS GCD的快速迭代

作者: BEYOND黄 | 来源:发表于2017-05-30 01:02 被阅读9次

-(void)forDemo

{

//同步

for(NSIntegeri =0; i<10; i++) {

NSLog(@"%zd---%@",i,[NSThreadcurrentThread]);

}}

//开子线程和主线程一起完成遍历任务,任务的执行时并发的

-(void)applyDemo

{

/*

第一个参数:遍历的次数

第二个参数:队列(并发队列)

第三个参数:index索引

*/

dispatch_apply(10,dispatch_get_global_queue(0,0), ^(size_tindex) {

NSLog(@"%zd---%@",index,[NSThreadcurrentThread]);

});

}

//使用for循环

-(void)moveFile

{

//1.拿到文件路径

NSString*from =@"/Users/xiaomage/Desktop/from";

//2.获得目标文件路径

NSString*to =@"/Users/xiaomage/Desktop/to";

//3.得到目录下面的所有文件

NSArray*subPaths = [[NSFileManagerdefaultManager]subpathsAtPath:from];

NSLog(@"%@",subPaths);

//4.遍历所有文件,然后执行剪切操作

NSIntegercount = subPaths.count;

for(NSIntegeri =0; i< count; i++) {

//4.1拼接文件的全路径

// NSString *fullPath = [from stringByAppendingString:subPaths[i]];

//在拼接的时候会自动添加/

NSString*fullPath = [fromstringByAppendingPathComponent:subPaths[i]];

NSString*toFullPath = [tostringByAppendingPathComponent:subPaths[i]];

NSLog(@"%@",fullPath);

//4.2执行剪切操作

/*

第一个参数:要剪切的文件在哪里

第二个参数:文件应该被存到哪个位置

*/

[[NSFileManagerdefaultManager]moveItemAtPath:fullPathtoPath:toFullPatherror:nil];

NSLog(@"%@---%@--%@",fullPath,toFullPath,[NSThreadcurrentThread]);

}}

-(void)moveFileWithGCD

{

//1.拿到文件路径

NSString*from =@"/Users/xiaomage/Desktop/from";

//2.获得目标文件路径

NSString*to =@"/Users/xiaomage/Desktop/to";

//3.得到目录下面的所有文件

NSArray*subPaths = [[NSFileManagerdefaultManager]subpathsAtPath:from];

NSLog(@"%@",subPaths);

//4.遍历所有文件,然后执行剪切操作

NSIntegercount = subPaths.count;

dispatch_apply(count,dispatch_get_global_queue(0,0), ^(size_ti) {

//4.1拼接文件的全路径

// NSString *fullPath = [from stringByAppendingString:subPaths[i]];

//在拼接的时候会自动添加/

NSString*fullPath = [fromstringByAppendingPathComponent:subPaths[i]];

NSString*toFullPath = [tostringByAppendingPathComponent:subPaths[i]];

NSLog(@"%@",fullPath);

//4.2执行剪切操作

/*

第一个参数:要剪切的文件在哪里

第二个参数:文件应该被存到哪个位置

*/

[[NSFileManagerdefaultManager]moveItemAtPath:fullPathtoPath:toFullPatherror:nil];

NSLog(@"%@---%@--%@",fullPath,toFullPath,[NSThreadcurrentThread]);

});

}

相关文章

  • iOS GCD的快速迭代

    -(void)forDemo{//同步for(NSIntegeri =0; i<10; i++) {NSLog(@...

  • GCD快速迭代

    普通for循环遍历数据 使用for循环遍历数据,是同步的, 串行的 GCD快速迭代: 开子线程和主线程一起完成遍历...

  • GCD的快速迭代

    GCD的快速迭代 通常我们进行遍历, 都是使用的for循环或者while循环 但是, 普通的循环, 是在主线程中执...

  • iOS面试--GCD常见用法

    项目中常见的GCD用法有已下几种: 1.GCD栅栏函数2.GCD快速迭代(遍历)3.GCD队列组的使用 1.GCD...

  • iOS开发GCD遍历(迭代)和For循环分析

    『导言』 iOS开发中经常用到遍历数据用到for循环,其实GCD中有个更好用的方法来快速迭代,下面我们来看看两者的...

  • GCD-快速迭代

    /* 第一个参数:遍历的次数 第二个参数:队列(要使用并发队列,主队列会发生死锁,串行队列将无效果) ...

  • 五. GCD的快速迭代

    GCD的快速迭代 通常我们进行遍历, 都是使用的for循环或者while循环但是, 普通的循环, 是在主线程中执行...

  • GCD

    GCD之dispatch_apply dispatch_apply的作用是快速迭代 dispatch_apply替...

  • GCD相关方法

    1.gcd栅栏函数 2.gcd快速迭代方法(dispatch_apply)同for循环做比较。 案例:将文件夹fr...

  • iOS多线程之NSOpearation

    在 iOS 开发中,异步操作通常使用 GCD 的方式来完成,GCD 可以简单快速完成异步操作,当如果涉及到高级的操...

网友评论

    本文标题:iOS GCD的快速迭代

    本文链接:https://www.haomeiwen.com/subject/rvilfxtx.html