runtime如何通过selector找到对应的IMP地址?

typedef struct objc_selector SEL;
一个selector的定义�是这样的
id (
IMP)(id, SEL, ...)
IMP是这样的,是一个方法的指针函数。
typedef struct objc_method *Method;

struct objc_method {

    SEL method_name                 OBJC2_UNAVAILABLE;  // 方法名

    char *method_types                  OBJC2_UNAVAILABLE;

    IMP method_imp                      OBJC2_UNAVAILABLE;  // 方法实现
}  

这是Method,将二者联系起来。
每个类都有一个分发列表methodLists,可以用来查找selector对应的方法。

你可能感兴趣的:(runtime如何通过selector找到对应的IMP地址?)