Gostaria de verificar se um objeto (por exemplo someObject
) é atribuível (passível de conversão) a uma variável de outro tipo (por exemplo SpecifiedType
). Em Java, eu posso escrever:
someObject instanceof SpecifiedType
Uma pergunta relacionada é descobrir se o tipo de tempo de execução de um objeto é igual a outro tipo. Em Java, eu posso escrever:
someObject.getClass().equals(SpecifiedType.class)
Como isso pode ser feito no Objective-C?
Respostas:
Tente
[myObject class]
retornar a classe de um objeto.Você pode fazer comparações exatas com:
mas não usando
MyClass
identificador direto .Da mesma forma, você pode descobrir se o objeto é de uma subclasse da sua classe com:
como sugerido por Jon Skeet e zoul.
fonte
if ([myObject isMemberOfClass:[MyClass class]])
Da Wikipedia :
isKindOfClass:
seria o mais próximoinstanceof
, pelos sons.fonte
Consulte o método isKindOfClass: na documentação do NSObject . (A palavra usual de advertência para essa pergunta é que verificar a classe de objeto geralmente é um sinal de que algo está errado.)
fonte
+ (BOOL)conformsToProtocol:(Protocol *)aProtocol
.