特定のメソッドが可変長型かどうかを実行時に確認する方法はありますか? のようなものmethod_getTypeEncoding()
; メソッドが可変数の引数を受け入れるかどうかはわかりません。それとも、そう言うトリックはありますか?
1 に答える
6
ロバートのコメントは正しいです。検討:
@interface Boogity
@end
@implementation Boogity
- (void)methodWithOneIntArg:(int)a {;}
- (void)variadicMethodWithIDSentinel:(id)a, ... {;}
@end
結果のバイナリ生成で実行strings
すると (在庫もありましたmain()
):
strings asdfasdfasdf
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
v20@0:8i16
v24@0:8@16
Hello, World!
可変引数メソッドを として宣言するように変更すると- (void)variadicMethodWithIDSentinel:(int)a, ...
、strings
出力は次のようになります。
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
v20@0:8i16
Hello, World!
だから、いいえ、言う方法はありません。
于 2012-07-17T19:58:13.447 に答える