谈谈你对Runtime的理解

1.讲一下oc的消息机制

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

2.什么是runtime ?

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

3.runtime具体应用

  • 利用关联对象 给分类添加属性
  • 遍历类的所有成员变量
  • 方法交换(交换系统的方法)
  • 利用消息转发机制解决方法找不到的异常问题
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容