戻り値が int
, 引数が NSObject *
だとして
// 変数 var を宣言
int(^var)(NSObject *);
// newType を宣言
typedef int(^newType)(NSObject *);
// メソッド引数として宣言
-(void)m1:(int(^)(NSObject *))blockArg;
変数宣言と typedef は関数ポインタと同じ形。
int (*var)(char *);
typedef int(*newType)(char *);
void f(int(*funcArg)(char *));
たまに間違えるけど、こうじゃない。
// これは間違い
-(void)m1:(int(^blockArg)(NSObject *))