15

如何获取特定类的类方法列表?我试过使用在中class_copyMethodList声明的函数<objc/runtime.h>,但这只是给我实例方法。我还找到了一个函数,它为我提供了一个类方法的 Method,但前提是我首先拥有该方法的选择器 ( class_getClassMethod)。

有任何想法吗?

谢谢,

戴夫

4

2 回答 2

25

使用元类。

#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);
于 2009-08-15T19:30:50.203 回答
14

class_copyMethodList返回传递的类的实例方法。类方法实际上是类元类的实例方法。

您的问题的解决方案包含class_copyMethodList.

于 2009-08-15T19:27:36.527 回答