iOS For循环执行AFNetworking请求

屏幕快照 2017-12-19 下午1.46.25.png

需求:如下操作打印的文档为

NSLog(@"开始");for(NSIntegeri =0; i <5; i++) {        [RequestUtil requestFavoriteGroup:appDelegate.userInfo.uid andBlock:^(NSArray*modelArr,NSError*error) {NSLog(@"第一层的循环请求,i=%ld",i);for(NSIntegerj =0; j <3; j++) {                [RequestUtil requestFavoriteGroup:appDelegate.userInfo.uid andBlock:^(NSArray*modelArr,NSError*error) {NSLog(@"第二层的循环请求,i=%ld,j=%ld",i,j);                }];            }        }];    }NSLog(@"结束");

开始

第一层的循环请求,i=0

第二层的循环请求,i=0,j=0

第二层的循环请求,i=0,j=1

第二层的循环请求,i=0,j=2

第一层的循环请求,i=1

第二层的循环请求,i=1,j=0

第二层的循环请求,i=1,j=1

第二层的循环请求,i=1,j=2

第一层的循环请求,i=2

第二层的循环请求,i=2,j=0

第二层的循环请求,i=2,j=1

第二层的循环请求,i=2,j=2

第一层的循环请求,i=3

第二层的循环请求,i=3,j=0

第二层的循环请求,i=3,j=1

第二层的循环请求,i=3,j=2

第一层的循环请求,i=4

第二层的循环请求,i=4,j=0

第二层的循环请求,i=4,j=1

第二层的循环请求,i=4,j=2

结束

一种写法:

dispatch_async(dispatch_get_global_queue(0,0), ^{NSLog(@"开始");        dispatch_semaphore_t sema = dispatch_semaphore_create(0);for(NSIntegeri =0; i <5; i++) {            [RequestUtil requestFavoriteGroup:@"8130d4174c2353af"andBlock:^(NSArray*modelArr,NSError*error) {NSLog(@"第一层的循环请求,i=%ld",i);dispatch_async(dispatch_get_global_queue(0,0), ^{                    dispatch_semaphore_t sema2 = dispatch_semaphore_create(0);for(NSIntegerj =0; j <3; j++) {                        [RequestUtil requestFavoriteGroup:appDelegate.userInfo.uid andBlock:^(NSArray*modelArr,NSError*error) {NSLog(@"第二层的循环请求,i=%ld,j=%ld",i,j);                            dispatch_semaphore_signal(sema2);                        }];                        dispatch_semaphore_wait(sema2, DISPATCH_TIME_FOREVER);                    }                    dispatch_semaphore_signal(sema);                });                            }];            dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);        }NSLog(@"结束");    });

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容