4-5最后两次调用
来源:4-5 消息转发流程
saultong
2019-05-06
最后的两次eating调用,第二次没有调用resolveInstanceMethod:方法是因为缓存中有student的imp还是有eating方法呢?
写回答
1回答
-
逆风
2019-05-13
确实是因为缓存的问题,但不是student的imp,也不是有eating方法。因为有imp:_objc_msg_Forward_impcache,它是一个特殊的imp。可以自己仔细分析下消息转发这块流程,resolveInstanceMethod准确来说属于消息查找流程。因为第一次resolveInstanceMethod没有返回IMP,第二次还要继续执行resolveInstanceMethod,是不多此一举....
10
相似问题