63 votes

iphone comment vérifier le type d'un objet?

SALUT , je suis nouveau sur iPhone. je veux vérifier le type d'un Objet. comment je vais faire ... le scenerio est je m obtenir un objet . si cet objet est de type Un de faire quelque chose .. si il est de type B, puis faire quelque chose .. actuellement, le type de l'objet est C qui est le parent de A et de B ...

j'ai deux classes AViewController et BViewController .. l'objet que je m arriver dans UIViewController .. maintenant comment faire pour vérifier si l'objet est AViewController ou BViewController . comment faire pour vérifier ???

152voto

Pavel Yakimenko Points 1610
if([some_object isKindOfClass:[A_Class_Name class]])
{
    // do somthing
}

45voto

Jasarien Points 35353

Il existe quelques méthodes sur NSObject qui vous permettent de vérifier les classes.

D'abord il y a -class qui sera de retour la Classe de votre objet. Cela retournera soit AViewController ou BViewController.

Ensuite, il y a deux méthodes, -isKindofClass: et isMemberOfClass:.

-isKindOfClass: permettra de comparer le récepteur avec la classe passée en argument et retourne true ou false selon si la classe est du même type ou d'une sous-classe de la classe donnée.

-isMemberOfClass: permettra de comparer le récepteur avec la classe passée en argument et retourne true ou false selon si la classe est strictement la même classe que la classe donnée.

3voto

rpetrich Points 25769

Un modèle plus courant dans Objective-C consiste à vérifier si l'objet répond aux méthodes qui vous intéressent. Exemple:

 if ([object respondsToSelector:@selector(length)]) {
    // Do something
}

if ([object conformsToProtocol:@protocol(NSObject)]) {
    // Do something
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X