谈谈你对Runtime的理解

1.讲一下oc的消息机制

  • OC的方法调用其实都转成的objc_magSend函数的调用,给方法调用者发送一条消息
  • objc_msgSend底层有3大阶段: 消息发送(从当前类 父类中查找)、动态方法解析、消息转发

2.什么是runtime ?

  • OC是一门动态性编程语言,允许很多操作推迟到运行时在进行
  • OC的动态性是有RunTime来支撑和实现的,Runtime是一套C语言的API,封装了很多动态性相关的函数
  • 平时编写的OC代码,底层都转换成立Runtime API进行调用

3.runtime具体应用

  • 利用关联对象 给分类添加属性
  • 遍历类的所有成员变量
  • 方法交换(交换系统的方法)
  • 利用消息转发机制解决方法找不到的异常问题

你可能感兴趣的:(谈谈你对Runtime的理解)