NSMethodSignature
は+ (NSMethodSignature *)instanceMethodSignatureForSelector:(SEL)aSelector
のNSObject
となります。次に、NSInvocation
を+ (NSInvocation *)invocationWithMethodSignature:(NSMethodSignature *)signature
NSInvocationを使用してクラスメソッドを呼び出すにはどうすればよいですか?
で作成してください。 のメソッドシグネチャしか取得できません。クラスメソッドはどうですか?
NSMethodSignature *pMS = [[YourObject class] methodSignatureForSelector: (SEL)aSelector];
あなたは、クラスのメソッドを取得するために使用できるクラスオブジェクト(シングルトン)のインスタンスを返す[YourObject class]
フラグメント:
あなたも 'class'一部を必要としないを示すNSInvocation経由クラス(およびインスタンスメソッド)を呼び出すに関する追加の詳細があります。 'YourObject'に送ることもできます。クラス名もtypedefであるだけでなく、ファーストクラスのオブジェクトでもあります。 –
お役立ち情報thx;) – Kent
ありがとう!しかしこれは '-'で始まるインスタンスメソッドとして宣言されたメソッドでのみ動作します。私はmethodメソッドを宣言してもクラスメソッドとして宣言できません。これは '+'で始まります。 –