1

このようなメソッドを宣言しているとき:

- (void)doAnythingWithThisBlock:(void(^)(NSString *, ... NS_REQUIRES_NIL_TERMINATION))AnythingBlock;

コンパイルエラーが発生しています:

Expected ')'

しかし、私が次のように宣言しているとき:

- (void)doAnythingWithThisBlock:(void(^)(NSString *, ...))AnythingBlock;

正常にコンパイルされ、期待どおりに動作します

使用できない - NS_REQUIRES_NIL_TERMINATION は、可変数の引数を持つブロックとして入力を受け入れるメソッドを宣言するときに使用できますか?

XCode 4.2で試しています

4

1 に答える 1

1

NS_REQUIRES_NIL_TERMINATION はメソッド宣言専用だと思います1

ただし、ブロックを特定の型に型定義して、それを引数として渡すことができます。その場合、clang はそれを食べるのでしょうか?

于 2012-04-05T13:02:16.983 に答える