Objective-C基础学习之对象的存储细节

1.对象的存储细节

  • 类创建对象,每个对象在内存中都占据一定的存储空间,每个对象都有一份属于自己的单独的成员变量,所有的对象公用类的成员方法,方法在整个内存中只有一份,类本身在内存中占据一份存储空间,类的方法存储于此。
Objective-C基础学习之对象的存储细节_第1张图片
对象存储的过程.png

2.isa指针

  • 每一个对象都包含一个isa指针.这个指针指向当前对象所属的类。
  • [p eat];表示给p所指向的对象发送一条eat消息,调用对象的eat方法,此时对象会顺着内部的isa指针找到存 储于类中的方法,执行。
  • isa是对象中的隐藏指针,指向创建这个对象的类。
  • 通过isa指针我们可以在运行的时候知道当前对象是属于那个Class(类)的
Objective-C基础学习之对象的存储细节_第2张图片
isa指针的作用.png

3.使用一个类创建多个对象

    Person * p = [Person new];
    p->_age = 27;
    p->_height = 1.75;
    p->_weight = 73.0;

   Person * p2 = [Person new];
    p2->_age = 26;
    p2->_height = 1.72;
    p2->_weight = 75.0;
Objective-C基础学习之对象的存储细节_第3张图片
一个类创建多个对象.png

你可能感兴趣的:(Objective-C基础学习之对象的存储细节)