メソッドの番号で指定した引数のタイプを返します
-(const char *)getArgumentTypeAtIndex:(unsigned)index:
解説
メソッドの番号で指定した引数のタイプを返します。
NSStringであれば"@"を返します。
引数の番号は0がself、1が_cmdになっていますので、通常2から始まります。
指定した番号が引数の数より大きいときはNSInvalidArgumentExceptionを返します。
返される引数型は実装方式によって異なるので注意が必要です。
返り値
( const char * )
引数
( unsigned )index
番号
フレームワーク
Foundation
クラス
NSMethodSignature
Instance Methods
使用可能
10.0
参照
例文
#import "MyObject.h" @implementation MyObject - (IBAction)myAction:(id)sender { id aSignature ;//シグネチャ id invocation ;//起動オブジェクト SEL aSelector ;//アクションセレクタ NSString *aBuffer=@"aaa"; aSelector = @selector( timerControl: );//アクションセレクタをセット aSignature = [ self methodSignatureForSelector:aSelector ];//セレクタのシグネチャをセット invocation = [ NSInvocation invocationWithMethodSignature:aSignature ];//起動オブジェクトをセット [ invocation setTarget: self ];//ターゲットはself [ invocation setSelector: aSelector ];//セレクタをセット [ invocation setArgument:&aBuffer atIndex:2]; [ invocation getArgument:&aBuffer atIndex:2]; [ invocation invoke ];//起動する NSLog([NSString stringWithCString:[[invocation methodSignature] getArgumentTypeAtIndex:2]]); } -(void) timerControl:(NSString *)arg { NSLog([NSString stringWithFormat:@"%@",arg]); } @end