Sie können dies tun, und es sehr gut bei https://developer.apple.com/library/mac/documentation/cocoa/Reference/ObjCRuntimeRef/index.html
dokumentiert alle Instanz oder Klasse Methoden einer Klasse zu holen, können Sie class_copyMethodList
und iterieren die Ergebnisse verwenden. Ein Beispiel:
#import <objc/runtime.h>
/**
* Gets a list of all methods on a class (or metaclass)
* and dumps some properties of each
*
* @param clz the class or metaclass to investigate
*/
void DumpObjcMethods(Class clz) {
unsigned int methodCount = 0;
Method *methods = class_copyMethodList(clz, &methodCount);
printf("Found %d methods on '%s'\n", methodCount, class_getName(clz));
for (unsigned int i = 0; i < methodCount; i++) {
Method method = methods[i];
printf("\t'%s' has method named '%s' of encoding '%s'\n",
class_getName(clz),
sel_getName(method_getName(method)),
method_getTypeEncoding(method));
/**
* Or do whatever you need here...
*/
}
free(methods);
}
Sie müssen zwei separate Aufrufe dieser Methode durchführen. Ein für die Instanzmethoden und einen anderen für die Klassenmethoden:
/**
* This will dump all the instance methods
*/
DumpObjcMethods(yourClass);
das gleiche auf der Metaklasse Aufruf geben Ihnen die alle Klassenmethoden
/**
* Calling the same on the metaclass gives you
* the class methods
*/
DumpObjcMethods(object_getClass(yourClass) /* Metaclass */);
Dieser Link jetzt leitet zur Navigation Seite – user3125367
Äpfel docs bekommen haben schrecklicher. Buzzys Antwort unten ist eine viel bessere Antwort. – Paul