代码改变世界

iOS--研究--object c的isa指针

2017-05-18 15:05  doudo  阅读(562)  评论(0编辑  收藏  举报

oc里万物皆对象(当然还不彻底,除了int这些基本类型)。

一、isa指针的指向:

一个objc对象的isa指针指向他的类对象(即平时我们所说的类),类对象的isa指针指向他的元类,元类的isa指针指向根元类,所有的元类isa都指向同一个根元类,根元类的isa指针指向根元类本身。根元类super class父类指向NSObject类对象。

 

二、oc对象、类对象、元类、根元类说明:

1.objc对象在内存中的排布是一个结构体,如图:

Objective-C 对象的结构图
ISA指针
根类的实例变量
倒数第二层父类的实例变量
...
父类的实例变量
类的实例变量

2.类对象中存放着:实例方法列表、成员变量列表、属性列表。

3.元类中存放着:类方法列表、类的信息等。