OC中消息传递的过程及消息转发流程

2018-10-29  本文已影响4人  没八阿哥的程序
消息传递的大致流程
  1. 会先从缓存中查找,采用的是哈希查找,若缓存命中,执行对应函数,若未命中,则从当前类方法列表中查找;
  2. 从当前类方法列表中查找,(对于已排序好的列表,采用二分查找算法查找方法对应执行函数;对于没有排序的列表,采用一般遍历查找方法对应执行函数),若当前类方法列表命中,则执行,若未命中,则从父类方法列表中查找;
  3. 从父类方法列表中查找,也是先查找缓存中,再查找当前类,若找到,则执行,若一直未找到,则走消息转发流程

缓存中查找

是根据对应的key进行哈希查找 ,通过哈希算法计算出IMP所在位置

当前类中查找

父类逐级查找

父类逐级查找流程

消息转发

消息转发流程
上一篇下一篇

猜你喜欢

热点阅读