SEL 即方法的 ID, 关于 SEL 的定义
typedef struct objc_selector *SEL;
struct objc_selector {
char *name; OBJC2_UNAVAILABLE;
char *types; OBJC2_UNAVAILABLE;
};
IMP 是函数指针,指向了函数的最终实现
SEL 与 IMP 的关系可以类比字典中的 Key 与 Value 的关系
OC 不支持函数重载,这是由于 SEL 只能是唯一的,即对比字典中的 Key 但在不同的类中,可以有相同的 SEL, 这是由于每个类都维护着不同的「字典」,SEL 处于不同的空间