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

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

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


参照下面的代码修改即可。

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);
}
【热门文章】
【热门文章】