2012-02-27 15 views
11

Podemos verificar fácilmente si el objeto tiene un método usando respondsToSelector:, pero ¿cómo lo hacemos para las funciones estáticas en clase?Compruebe si la clase tiene el método estático

me gustaría tener algo como esto:

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

Respuesta

42

En las clases de Objective-C son objetos también.

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

} 

También una pequeña nota, estos NO son métodos 'estáticos'. Eso significa algo específico que no existe en Objective-C. Son métodos de clase.

+2

Snap! Borré mi respuesta idéntica. 28 segundos! – jrturton

+2

+1 especialmente para la corrección de los métodos "estáticos" :-) – JeremyP

+0

¿por qué OP querría verificar la existencia de un método de clase dada una instancia de esa clase? para llamar a un método de clase, necesitan el objeto de clase en sí, por lo que tendría más sentido recibir el objeto de clase – user102008

Cuestiones relacionadas