search

Home  >  Q&A  >  body text

ios - 把多个block放到一个数组里,然后分别执行数组里的block,执行的时候应该怎么调用呢

大家讲道理大家讲道理2892 days ago466

reply all(1)I'll reply

  • 天蓬老师

    天蓬老师2017-04-18 09:30:13

    Refer to the code below to modify it.

    typedef void (^block_t0)(void);
    typedef void (^block_t1)(int i);
    typedef void (^block_t2)(int i, int j);
    
    - (NSArray *)getBlockArr {
        block_t0 block0 = ^(void){NSLog(@"this is block_t0 "); };
        block_t1 block1 = ^(int i){NSLog(@"this is block_t1 withPara:%i", i); };
        block_t2 block2 = ^(int i, int j){NSLog(@"this is block_t2 withPara:%i %i", i, j); };
    
        NSArray *blockArray = @[block0, block1, block2];
    
        return blockArray;
    }
    
    -(void)test{
    NSArray *blockArray = [self getBlockArr];
    
        block_t0 block0 = blockArray[0];
        block_t1 block1 = blockArray[1];
        block_t2 block2 = blockArray[2];
        block0();
        block1(10);
        block2(20, 30);
    }
    

    reply
    0
  • Cancelreply