如果boolean为true,如何使用block作为参数和一个boolean并在body中的函数执行该块?

时间:2014-11-25 14:01:52

标签: ios objective-c objective-c-blocks

如何创建一个将块作为参数和一个布尔值并在体内的函数;如果布尔值为true,则执行该块?

Block没有返回值(void),也没有任何参数。

在c ++中,我会用函数指针执行此操作,但我是目标c的新手,并且不知道如何执行块的条件执行。

2 个答案:

答案 0 :(得分:4)

将您的方法声明为

-(void)myBlock:(void (^)(void))block withCondition:(BOOL)condition{
    if(condition){
       block();
    }
}

将其命名为:

[self myBlock:^(void) {
        NSLog(@"Hii block excuted");
    } withCondition:YES];

有关详细信息,请参阅HERE

答案 1 :(得分:2)

Objective-C方法:

- (void)executeBlock:(void (^)(void))block onCondition:(BOOL)condition
{
    if (condition)
    {
        block();
    }
}

C函数:

void executeBlock(void (^block)(void), BOOL condition)
{
    if (condition)
    {
        block();
    }
}