Utiliser NSClassFromString()
. Si elle renvoie nil
, la classe n'existe pas, sinon ce sera le retour de la classe de l'objet qui peut être utilisé.
C'est la méthode recommandée selon Apple dans ce document:
[...] Votre code d'essai pour la
l'existence d'une classe à l'aide de
NSClassFromString()
qui sera de retour
valide d'un objet de classe si [la] classe
existe ou nil si il doesn't. Si l'
la classe n'existe pas, votre code peut l'utiliser
[...]
Mise à jour: Ben Mosher et code007 souligné, il existe un autre moyen de le faire sur iOS que de 4,2...
Sur iOS 4.2 et plus: (voir code007 la réponse pour plus de détails)
if ([SomeClass class]) {
// class exists
SomeClass *instance = [[SomeClass alloc] init];
} else {
// class doesn't exist
}
Sur OS X ou iOS:
Class klass = NSClassFromString(@"SomeClass");
if (klass) {
// class exists
id instance = [[klass alloc] init];
} else {
// class doesn't exist
}