项目中动态解析和消息转发会真实用到吗?有哪些案例

来源:10-5 面试题-Runtime Associate

卷王Charles

2021-10-24

老师您好,因时间有限,视频我是跳着看的,针对此面试题,我有如下几个问题求教,请解答。

  1. resolveInstanceMethod 用在什么场景?
  2. forwardingTargetSelector 用在什么场景?
  3. methodSignatureForSelector&forwardInvocatioin 用在什么场景?

针对以上3个处理流程,我们在项目中真的会用到吗?或者在您过往的项目中有使用过吗?

写回答

3回答

逆风

2021-10-26

一般项目中确实用不着消息机制,也不推荐,就像通知一样,即使要用也要维护好相关代码。

理解机制,能够让我们更好理解iOS底层的一些运行原理。当遇到棘手问题更方便的排查与解决。

应用场景:

  1. JSPatch,仔细读一读JSPatch源码,你会更加有收获。

  2. 兼容iOS系统不同版本时,有的方法可能不存在,如果一个个改时,比较麻烦。可以考虑使用消息机制,把不存在的方法转发到另外一个方法。

0
0

卷王Charles

提问者

2021-10-24

经过搜索,发现methodSignatureForSelector的使用场景如下:

  1. 可以模拟多继承的特性

  2. 为协议遵循者提供默认实现

参考:https://zhangbuhuai.com/post/message-forwarding.html

0
0

卷王Charles

提问者

2021-10-24

关于 resolveInstanceMethod 的用法,但是我们项目中依然没有这种用法,疑惑待解除

//img.mukewang.com/szimg/6174b12c097a881a21621336.jpg

0
0

面试跳槽提升必备 全面解析iOS中的Runtime机制

高薪职位,复杂业务需求,高性能APP,Runtime技术不可不学。

275 学习 · 48 问题

查看课程