Question

Je souhaite vérifier si un objet (par exemple someObject) est assignable (coulée en mesure) à une variable d'un autre type (par exemple SpecifiedType). En Java, je peux écrire:

someObject instanceof SpecifiedType

Une question connexe est de trouver si le type d'exécution d'un objet est égal à un autre type. En Java, je peux écrire:

someObject.getClass().equals(SpecifiedType.class)

Comment cela peut-il être fait en Objective-C?

Était-ce utile?

La solution

Essayez [myObject class] pour retourner la classe d'un objet.

Vous pouvez faire des comparaisons précises avec:

if ([myObject class] == [MyClass class])

mais pas en utilisant identifiant directement MyClass.

Similairement, vous pouvez trouver si l'objet est d'une sous-classe de votre classe:

if ([myObject isKindOfClass:[AnObject class]])

tel que suggéré par Jon Skeet et Zoul.

Autres conseils

De Wikipedia :

  

Dans Objective-C, par exemple, les deux   Object générique et NSObject (en   Cacao / OpenStep) fournir le procédé   isMemberOfClass: qui retourne true si   l'argument de la méthode est un   instance de la classe spécifiée. le   Procédé isKindOfClass: analogue   renvoie true si l'argument hérite   à partir de la classe spécifiée.

isKindOfClass: serait plus proche de instanceof, par les sons de celui-ci.

scroll top