Получить список методов класса для произвольного класса

Как я могу получить список методов класса для определенного класса? Я попытался использовать функцию class_copyMethodList, объявленную в , но это только дает мне методы экземпляра. Я также нашел функцию, которая дает мне метод для метода класса, но только если у меня есть селектор метода сначала (class_getClassMethod).

Любые идеи?

Спасибо,

Dave

2 ответа

class_copyMethodList возвращает методы экземпляра переданного класса. Методы класса на самом деле представляют собой методы класса метакласса.

Решение вашей проблемы включено в Документация API для class_copyMethodList.


Используйте метакласс.

#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);
</objc>

licensed under cc by-sa 3.0 with attribution.