macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

getArgumentTypeAtIndex:

メソッドの番号で指定した引数のタイプを返します
-(const char *)getArgumentTypeAtIndex:(unsigned)index:

解説

メソッドの番号で指定した引数のタイプを返します。
NSStringであれば"@"を返します。
引数の番号は0がself、1が_cmdになっていますので、通常2から始まります。
指定した番号が引数の数より大きいときはNSInvalidArgumentExceptionを返します。

返される引数型は実装方式によって異なるので注意が必要です。

返り値

( const char * )

引数

( unsigned )index

番号

クラス

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