-1

ClassA に Selector1 というメソッドがあります。

ClassB では、NSInvocation オブジェクトを作成し、Selector1 をオブジェクトのセレクターとして設定したいと考えています。これは可能ですか?これを設定する適切な方法がわかりません。

ClassB で使用しようとしているコードは次のようなものです。

NSMethodSignature *signature = [ClassA methodSignatureForSelector:@selector(Selector1:)];
NSInvocation *invocationToPass = [NSInvocation invocationWithMethodSignature:signature];
invocationToPass.target = self;
invocationToPass.selector = Selector1; // How can I assign Selector1 from ClassA?
4

1 に答える 1

1

メソッドの名前だけでなく、SEL渡したものと同じように、が必要です。methodSignatureForSelector:

[invocationToPass setSelector:@selector(Selector1:)];

また、コロンが重要であることに注意する必要があります。メソッドが引数を取らない場合、名前はSelector1;になります。1つかかる場合、名前はSelector:です。演算子に正しい名前を入力する必要があります@selector()

于 2012-06-27T06:58:44.877 に答える