1. ホーム
  2. objective-c

[解決済み] typedefを使用しないブロックメソッドパラメータの宣言

2022-05-06 15:09:01

質問

Objective-Cでメソッドブロックのパラメータをtypedefを使用せずに指定することは可能でしょうか? 関数ポインタのように、そうでなければならないのですが、中間のtypedefを使用せずに勝利の構文にヒットしません。

typedef BOOL (^PredicateBlock_t)(int);
- (void) myMethodTakingPredicate:(PredicateBlock_t)predicate

のみがコンパイルされ、これらはすべて失敗します。

-  (void) myMethodTakingPredicate:( BOOL(^block)(int) ) predicate
-  (void) myMethodTakingPredicate:BOOL (^predicate)(int)

と、他にどんな組み合わせを試したか思い出せません。

解決方法は?

- ( void )myMethodTakingPredicate: ( BOOL ( ^ )( int ) )predicate