iOS消息转发
2020-04-13 本文已影响0人
FRANK_kon
方法查找过程中,先通过sel查找imp,如果查找不到,则进入动态方法决议,看是否有特殊处理;
先判断cls是否元类,如果是元类,则该方法是类方法,若不是,则该方法是类方法,进入动态方法决议。
1、类方法动态决议时,会走到对象方法决议里,因为code的缓存
类方法存在根类里面是对象方法方式存在,所以类方法动态决议还需要走一下对象方法动态决议,会向类的isa, 元类,根源类,nsobject发送对象动态决议方法
方法查找过程中,先通过sel查找imp,如果查找不到,则进入动态方法决议,看是否有特殊处理;
先判断cls是否元类,如果是元类,则该方法是类方法,若不是,则该方法是类方法,进入动态方法决议。
1、类方法动态决议时,会走到对象方法决议里,因为code的缓存
类方法存在根类里面是对象方法方式存在,所以类方法动态决议还需要走一下对象方法动态决议,会向类的isa, 元类,根源类,nsobject发送对象动态决议方法