如何获取特定类的类方法列表?我已经尝试使用class_copyMethodList
中声明的<objc/runtime.h>
函数,但这只是给我实例方法。我还找到了一个函数,它给了我一个类方法的方法,但前提是我首先有方法的选择器(class_getClassMethod
)。
有什么想法吗?
谢谢,
戴夫
答案 0 :(得分:21)
使用元类。
#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);
答案 1 :(得分:14)
class_copyMethodList
返回传递的类的实例方法。类方法实际上是类的元类的实例方法。
问题的解决方案包含在class_copyMethodList
的{{3}}中。