2012-02-27 5 views
11

respondsToSelector:을 사용하여 개체에 메서드가 있는지 쉽게 확인할 수 있지만 클래스의 정적 함수에는 어떻게 사용합니까?클래스에 정적 메서드가 있는지 확인

나는 이런 식으로 뭔가를하고 싶은 :

오브젝티브 C 클래스에서
if ([cls classRespondsToSelector:@selector(staticMethodName)]) { 
    ... 
} 

답변

42

개체도 있습니다.

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

} 

또한 작은 메모이지만 '정적'방법이 아닙니다. 그것은 Objective-C에 존재하지 않는 특정한 것을 의미합니다. 그것들은 클래스 메소드입니다.

+2

Snap! 내 동일한 대답을 삭제했습니다. 28 초! – jrturton

+2

+1 특히 "정적"방법에 대한 수정 :-) – JeremyP

+0

OP가 클래스의 인스턴스가 주어진 클래스 메소드의 존재를 확인하려고하는 이유는 무엇입니까? 클래스 메쏘드를 호출하기 위해서는 클래스 객체 자체가 필요합니다. 따라서 클래스 객체가 주어진 것이 더 합리적입니다. – user102008

관련 문제