2012-02-27 15 views
11

respondsToSelector:を使用してオブジェクトにメソッドがあるかどうかを簡単に確認できますが、クラスの静的関数の場合はどうすればよいでしょうか?私はこのような何かがしたいクラスに静的メソッドがあるかどうかを確認

:Objective-Cのクラスでは

if ([cls classRespondsToSelector:@selector(staticMethodName)]) { 
    ... 
} 

答えて

42

はあまりにもオブジェクトです。

if ([[myClass class] respondsToSelector:@selector(classMethod)]) { 

} 

また、これらは静的な方法ではありません。つまり、Objective-Cには存在しない特定のものを意味します。それらはクラスメソッドです。

+2

スナップ!私の同じ答えを削除しました。 28秒! – jrturton

+2

+1特に "静的な"メソッドについて:-) – JeremyP

+0

なぜOPはそのクラスのインスタンスが与えられたクラスメソッドの存在をチェックしたいのですか?クラスメソッドを呼び出すには、クラスオブジェクト自体が必要なので、クラスオブジェクトが与えられるほうが意味があります – user102008

関連する問題