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 ?
Réponses
Trop de publicités?
ealee
Points
41
Il suffit d'ajouter une catégorie :
NSObject+Extensions.h
- (NSString *)className;
NSObject+Extensions.m
- (NSString *)className {
return NSStringFromClass(self.class);
}
Ensuite, utilisez le code suivant :
NSString *className = [[SomeObject new] className];
ou même :
NSString *className = SomeObject.new.className;
Pour l'utiliser n'importe où, ajoutez la catégorie au fichier YourProject.pch.
Roman Barzyczak
Points
754
crifan
Points
1242
- par exemple
NSString* classNameNSStr = [someObjcInstance className]
- pour la classe
NSString* classNameNSStr = NSStringFromClass(someObjcClass)
const char* className = object_getClassName(someObjcClass)
--> liés :
- juste pour comparer si c'est une certaine classe ou non
- -> pas besoin d'obtenir le nom de la classe, il suffit d'utiliser
isKindOfClass
:BOOL isSameClass = [someObjcInstance isKindOfClass: SomeClass];
SomeClass
peut être obtenu à partir de :objc_getClass("SomeClassName")
- -> pas besoin d'obtenir le nom de la classe, il suffit d'utiliser
- Réponses précédentes
- Plus de réponses
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!