1. 对象的存储细节
-
类创建对象,每个对象在内存中都占据一定的存储空间,每个对象都有一份属于自己的单独的成员变量,所有的对象公用类的成员方法,方法在整个内存中只有一份,类本身在内存中占据一份存储空间,类的方法存储于此。
dxdccxj.png
2. isa指针
创建对象的时候返回的地址其实就是类的第0个属性的地址,也就是isa这个属性的地址,是系统帮我们添加的,isa是一个指针, 占8个字节
-
每一个对象都包含一个isa指针.这个指针指向当前对象所属的类。
-
[p eat];表示给p所指向的对象发送一条eat消息,调用对象的eat方法,此时对象会顺着内部的isa指针找到存储于类中的方法(类的方法列表),执行。类方法直接去找类对象,然后找到方法执行
-
isa是对象中的隐藏指针,指向创建这个对象的类。
通过isa指针我们可以在运行的时候知道当前对象是属于那个Class(类)的
3.使用一个类创建多个对象
Car *car1 = [Car new];
Car *car2 = [Car new]
cxdcj.png
网友评论