149 votes

Obtenir le nom de la classe à partir d'une instance

Je rencontre le problème suivant : je reçois une instance d'une classe en argument et je veux connaître le nom de la classe de cette instance. Comment puis-je obtenir cela ?

0 votes

Peut-être reformuler votre question ou accepter la réponse qui correspond à la question?

0 votes

@JasperBlues : Terminé, je n'avais même pas réalisé à quel point c'était devenu populaire!

410voto

CiNN Points 3893

NSStringFromClass([instance class]) devrait faire l'affaire.

33 votes

The translation keeping the same HTML tags would be: Upvoté pour avoir répondu à la question afin que les googlers puissent obtenir une réponse, au lieu d'anticiper le besoin.

2 votes

N'oubliez pas d'#import pour pouvoir appeler une classe sur une instance.

31voto

kubi Points 20607

Si tout ce que vous voulez faire est de tester un objet pour voir s'il est d'un certain type de classe

BOOL test = [self isKindOfClass:[SomeClass class]];

17voto

Katedral Pillon Points 645

À partir de la classe elle-même

-(NSString *) nomDeLaClasse
{
    return NSStringFromClass([self class]);
}

2 votes

Absolument ne veux pas susciter votre colère, mais c'était la deuxième réponse liée à iOS dans votre profil. Il me semble seulement ajouter que nous pouvons nous référer à une instance comme "self" à partir de son implémentation. Défendriez-vous cela comme ajout substantiel à la réponse acceptée il y a trois ans ?

0 votes

@danh Je vois que tu me chasses. Bravo à toi!

0 votes

Désolé, je viens de cliquer sur celui-ci et j'ai hésité à dire quelque chose. Je voulais juste taquiner gentiment, mais je sais que les esprits s'échauffent rapidement dans ces environnements semi-anonymes. Merci d'avoir été bon joueur à ce sujet. (En fait, +1 pour avoir pratiqué l'encapsulation).

5voto

Lal Krishna Points 5552

OBJC:

NSStringFromClass([instance class])

SWIFT

From instance:

String(describing: YourType.self)

From type:

String(describing: self)

Translated to French:

OBJC:

NSStringFromClass([instance class])

SWIFT

From instance:

String(describing: YourType.self)

From type:

String(describing: self)

2voto

Jeremie Points 485

Vous pouvez également utiliser [[self class] description]

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