Block 词法
^ [返回类型][参数] { 内容 }
Blocks as Data
定义Block pointer. 看起来像函数pointer: void (*callable)(void);
void (^callable)(void);
下面这是一个复杂的block pointer,它的参数也是一个block pointer.
char *(^worker)(char *a, BOOL(^done)(int));
可以使用typedef来简化:
typedef BOOL (^doneBlk_t)(int);
char *(^workB)(char *a, doneBlk_t d);