zoukankan      html  css  js  c++  java
  • 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(@"结束");    });

  • 相关阅读:
    Linux crontab 命令
    tcpdump抓包工具
    tcpdump过滤某个端口
    ARM处理器基础Cortex-M4
    rtems floating poing switch
    ARM处理器的堆栈和函数调用,以及与Sparc的比较
    关于调用堆栈,任务堆栈
    如何测试嵌入式处理器的CPU使用率
    关于嵌入式实时操作系统的实时性
    RTEMS API
  • 原文地址:https://www.cnblogs.com/striveLD/p/9953734.html
Copyright © 2011-2022 走看看