ios 获取类的实例方法列表

需要引用:

#import <Foundation/NSObjCRuntime.h>

#import <objc/runtime.h>

实现

 

Class currentClass=[Common class];

    while (currentClass) {

        unsigned int methodCount;

        Method *methodList = class_copyMethodList(currentClass, &methodCount);

        unsigned int i = 0;

        for (; i < methodCount; i++) {

            NSLog(@"%@ - %@", [NSString stringWithCString:class_getName(currentClass) encoding:NSUTF8StringEncoding], [NSString stringWithCString:sel_getName(method_getName(methodList[i])) encoding:NSUTF8StringEncoding]);

        }

        

        free(methodList);

        currentClass = class_getSuperclass(currentClass);

    }


(smking:我试过,确实可行,并且在objc/runtime.h以及帮助文档中搜class_copyMethodList,可以看到相当多的运行时方法,还有一个方法可以替换已有类的方法,在运行时过程中, 这就可以做到进行事件的截取,可以先通过遍历该类的方法,然后再替换某一个特别的方法,就可以使之失效的目的。

转自:http://blog.sina.com.cn/s/blog_6d01cce30101e4ab.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值