iOS - Runtime 基础知识1

Runtime 基础知识

  • 数据结构
  • 类对象与元类对象
  • 消息传递机制
  • 方法缓存
  • 消息转发
  • Method-Swizzling
  • 动态添加方法
  • 动态方法解析

基础数据结构

  • objc_object
  • objc_class
  • isa指针
  • method_t

objc_object

  • 我们在OC中使用的所有的对象都是id类型的。id类型的对象对应到runtime当中就是 id == objc_object,就是objc_object 这样的一个结构体
  • objc_object 数据结构
  • isa_t 共用体 。
  • 关于isa操作相关的方法 例如:通过objc_object这个结构来获取isa所指向的类对象。 类对象通过isa指针指向它的元类对象
  • 弱引用相关的方法 这个结构是否曾经有过弱引用指针
  • 关联对象相关方法 给这个对象设置类一些关联属性等,关联属性的相关方法也体现在objc_object这个结构体当中。
  • 内存管理相关的一些方法实现 包括 retain、release、mrc、arc等这些方法实现都是封装在objc_object这个结构体当中。

objc_class

  • Class == objc_class
  • Class 代表的是一个类,对应的就是objc_class , class 就是一个对象,因为objc_class 继承字objc_class
  • objc_class Class superClass Class类型的superClass 就是类对象的父类 ,通过superClass这

你可能感兴趣的:(iOS)