43 votes

obtenir toutes les méthodes d'une classe ou d'une instance objective-c?

Dans Objective-C, je peux tester si une classe ou une instance donnée répond à certains sélecteurs. Mais comment peut-on interroger une classe ou une instance pour toutes ses méthodes ou propriétés d'une classe (par exemple une liste de toutes les méthodes ou propriétés)?

Que cela soit documenté ou non, cela doit être possible car par exemple WebView peut interroger un objet scriptable de plugins pour toutes les méthodes et propriétés si elles doivent être visibles par les scripts ou non.

9voto

Ben Gottlieb Points 59900

Vous voudrez utiliser les méthodes d'exécution Objective C, voir ici: http://developer.apple.com/mac/library/documentation/cocoa/Reference/ObjCRuntimeRef/Reference/reference.html

6voto

NSResponder Points 14459

4voto

user250120 Points 672

Ceci est possible via objc_method_list. Pour énumérer vos méthodes, vous devrez enregistrer toutes vos méthodes avant de la main.

Le processus est simple: une fois que vous avez déclaré votre fonction, vous pouvez créer une instance de objc_method et inscrire le nom de la fonction. Puis ajouter le objc_method à un objc_method_list et enfin passer le objc_method_list à class_addMethods..

Voici un lien pour vous aider à démarrer: http://theocacao.com/document.page/327

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