iOS

iOS 获取某个类里的所有方法名

2022-03-12  本文已影响0人  小子难缠

获取某个类里的所有方法名称

利用runtime获取方法名,首先需要导入runtime头文件 <objc/runtime.h>,以下是具体的代码实现:

/** 获取某个类里的所有方法名 cls:传真正的类名 */
- (void)printMethodNamesOfClass:(Class)cls{
    unsigned int count;
    /** 获得方法数组 */
    Method *methodList = class_copyMethodList(cls, &count);
    // 存储方法名
    NSMutableString *methodNames = [[NSMutableString alloc] init];
    /** 遍历所有的方法 */
    for (int i = 0; i < count; i++) {
        /** 获得方法名 */
        Method method = methodList[i];
        /** 获得方法名 */
        NSString *methodName = NSStringFromSelector(method_getName(method));
        /** 拼接方法名 */
        [methodNames appendFormat:@"%@, ",methodName];
    }
    /** 释放(因为是C语言函数,所以需要手动的内存管理,释放内存) */
    free(methodList);
    NSLog(@"%@ %@",cls,methodNames);
}

使用

[self printMethodNamesOfClass:object_getClass(self.person)];

上一篇 下一篇

猜你喜欢

热点阅读