创建一个接受块作为参数的块

Ano*_*ite 3 syntax objective-c objective-c-blocks

void (^block)();
void (^block1)(int);
Run Code Online (Sandbox Code Playgroud)

第一行声明一个块.

第二行声明一个带整数参数的块.

现在我想要一个接受另一个块作为参数的块:

void (^block2)(<another block>);
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

ken*_*ytm 8

使用typedef,例如

typedef void (^BlockTypeToAccept)();
void (^block)(BlockTypeToAccept inner_block);
Run Code Online (Sandbox Code Playgroud)

或者直接组合它们:

void (^block)( void (^inner_block)() );
Run Code Online (Sandbox Code Playgroud)