消息转发第二步和第三步都是将消息转发给其他对象 ,有什么区别,为什么还需要第三步

来源:5-5 消息转发相关面试问题

慕移动7126149

2019-04-29

写回答

1回答

慕后端8876056

2019-05-27

第二步和第三步看起来好像都是将消息转发给其他对象,但实际上是有所不同的.在第二步的时候是无法操作经由这一步转发的消息内容的,只是由运行期系统来问:这个消息你处理不了,能不能不改变消息的内容让其他接受者来处理.如果找不到其他接受者,则进行第三步.

在第三步里面,会先创建NSInvocation对象,把消息相关的选择子(selector),目标(target),参数封装起来,在这个时候是可以改变消息内容的,你可以在此处追加参数,或者更换选择子.再由消息派发系统来指派给目标对象

0
0

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程