项目中动态解析和消息转发会真实用到吗?有哪些案例
来源:10-5 面试题-Runtime Associate
卷王Charles
2021-10-24
老师您好,因时间有限,视频我是跳着看的,针对此面试题,我有如下几个问题求教,请解答。
- resolveInstanceMethod 用在什么场景?
- forwardingTargetSelector 用在什么场景?
- methodSignatureForSelector&forwardInvocatioin 用在什么场景?
针对以上3个处理流程,我们在项目中真的会用到吗?或者在您过往的项目中有使用过吗?
写回答
3回答
-
逆风
2021-10-26
一般项目中确实用不着消息机制,也不推荐,就像通知一样,即使要用也要维护好相关代码。
理解机制,能够让我们更好理解iOS底层的一些运行原理。当遇到棘手问题更方便的排查与解决。
应用场景:
JSPatch,仔细读一读JSPatch源码,你会更加有收获。
兼容iOS系统不同版本时,有的方法可能不存在,如果一个个改时,比较麻烦。可以考虑使用消息机制,把不存在的方法转发到另外一个方法。
00 -
卷王Charles
提问者
2021-10-24
经过搜索,发现methodSignatureForSelector的使用场景如下:
可以模拟多继承的特性
为协议遵循者提供默认实现
参考:https://zhangbuhuai.com/post/message-forwarding.html
00 -
卷王Charles
提问者
2021-10-24
关于 resolveInstanceMethod 的用法,但是我们项目中依然没有这种用法,疑惑待解除
00
相似问题
