Obtenir la liste des méthodes de classe pour une classe arbitraire
-
16-09-2019 - |
Question
Comment puis-je obtenir la liste des classe méthodes pour une classe particulière? Je l'ai essayé d'utiliser la fonction class_copyMethodList
déclarée <objc/runtime.h>
, mais c'est seulement me donner des méthodes d'instance. Je l'ai aussi trouvé une fonction qui me donne une méthode pour une méthode de classe, mais seulement si je le sélecteur sur la première méthode (class_getClassMethod
).
Toutes les idées?
Merci,
Dave
La solution
class_copyMethodList
renvoie les méthodes d'instance de la classe passé. Les méthodes de classe sont en fait des méthodes d'instance de la métaclasse de la classe.
La solution à votre problème est inclus dans le droit API Documentation pour class_copyMethodList
.
Autres conseils
Utilisez le métaclasse.
#import <objc/runtime.h>
int unsigned numMethods;
Method *methods = class_copyMethodList(objc_getMetaClass("NSArray"), &numMethods);
for (int i = 0; i < numMethods; i++) {
NSLog(@"%@", NSStringFromSelector(method_getName(methods[i])));
}
free(methods);