OC 对象分析

文章目录
  1. 1. Objective-C中的对象有哪些
  2. 2. objc_object 源码结构
  3. 3. objc_class 源码结构
    1. 3.1. isa 和 superclass 指针

引用源码:objc4

oc对象结构

思考:问自己的问题

  1. 实例对象,类对象,元类对象之间的关系
  2. 对象的属性&方法是怎么传的
  3. 对象方法是如何查询的
  4. oc 的消息机制是什么样的
  5. 这些理论可以应用到什么地方?

Objective-C中的对象有哪些

Objective-C中万物接对象,对象主要分为3种

  • instance对象
  • class对象
  • meta-class对象

objc_object 源码结构

objc_object

objc_class 源码结构

objc_class

class 和 meta-class 的结构相同

  • class_rw_t
    • 保存了class的 methodlists, propertylists, protocollists
  • class_ro_t
    • 保存了父类的 methodlists, propertylists, protocollists

isa 和 superclass 指针

isa 指向生产他这个对象的对象:

  1. instance 对象的isa 是class 对象
  2. class 对象的 isa 是 meta-class 对象
  3. meta-class 的 isa 是 root-metaclass 对象(所有元类的 isa 都指向他)