回答:
静的なメッセージinstanceRespondToSelector:(SEL)selectorもあります。次の ように呼び出します。
[MyClass instancesRespondToSelector:@selector(someMethod:withParams:)]
またはこのように:
[[myObject class] instancesRespondToSelector:@selector(someMethod:withParams:)]
これは、これに応じて(つまり、インスタンス自体を取得する前に)あるコンストラクターまたは別のコンストラクターを呼び出す場合に役立ちます。
あなたはrespondsToSelectorを探しています: -
if ([foo respondsToSelector: @selector(bar)] {
[foo bar];
}
ドナルが言う上記のfooができることを示しています間違いなくバーセレクタを受けて処理します。ただし、fooがbarメッセージを受信する基になるオブジェクトにbarを転送するプロキシである場合、メッセージはbarに応答するオブジェクトに転送されますが、respondsToSelector:はNOを通知します。
- forwardInvocation:
)宣言していないセレクターに応答できるため、これが正しいアプローチであるかどうかという問題もあります。