Me gustaría comprobar si un objeto (p someObject
. Ej. ) Es asignable (apto para conversión) a una variable de otro tipo (p SpecifiedType
. Ej .). En Java, puedo escribir:
someObject instanceof SpecifiedType
Una pregunta relacionada es encontrar si el tipo de tiempo de ejecución de un objeto es igual a otro tipo. En Java, puedo escribir:
someObject.getClass().equals(SpecifiedType.class)
¿Cómo se puede hacer esto en Objective-C?
Respuestas:
Intenta
[myObject class]
devolver la clase de un objeto.Puede hacer comparaciones exactas con:
pero no usando directamente el
MyClass
identificador.Del mismo modo, puede encontrar si el objeto es de una subclase de su clase con:
según lo sugerido por Jon Skeet y zoul.
fuente
if ([myObject isMemberOfClass:[MyClass class]])
De Wikipedia :
isKindOfClass:
estaría más cerca deinstanceof
, por el sonido de la misma.fuente
Consulte el método isKindOfClass: en la documentación de NSObject . (La palabra de advertencia habitual para tal pregunta es que verificar la clase de objeto es a menudo una señal de hacer algo mal).
fuente
+ (BOOL)conformsToProtocol:(Protocol *)aProtocol
.