さまざまなperformSelector:...
メソッドは、指定されたセレクターに渡される最大 2 つの引数を処理できます。3 つ以上の引数を渡す必要がある場合はどうすればよいですか?
4123 次
2 に答える
14
そのためには NSInvocation クラスを使用する必要があります。それらの使用方法の詳細については、この SO の質問を確認してください。
于 2011-10-05T12:12:27.210 に答える
0
私は NSInvocation の方法が嫌いです。コードが多すぎます。
セレクターをすぐに実行したい場合は、シンプルでクリーンな方法を次に示します。
// Assume we have these variables
id target, SEL aSelector, id parameter1, id parameter2;
// Get the method IMP, method is a function pointer here.
id (*method)(id, SEL, id, id) = (void *)[vc methodForSelector:aSelector];
// IMP is just a C function, so we can call it directly.
id returnValue = method(vc, aSelector, parameter1, parameter2);
于 2016-10-31T09:58:57.370 に答える