iOS中类的本质和ARC基本原理

类的本质

类是一个对象

类本身也是一个对象,是个Class类型的对象,简称类对象。一个类只有一个类对象。

同类型的类只占用内存中的同一份存储空间

类的加载过程

  • 当程序启动时,就会加载项目中所有的类和分类,而且加载后会调用每个类的分类的+load方法。只会调用一次。
//程序运行时会自动加载项目中的所有类,类加载完毕后就会调用它
+(void)load 
  • 当第一次使用某个类时,就会调用当前类的+initialize方法
第一次使用本类时就会调用initialize,可以当做类的初始化。用于监听这个类什么时候被使用
+ (void)initialize 

  • 先加载父类在加载子类

ARC基本原理

  • ARC原理:只要没有强指针指向对象,就会释放对象
    指针分为两种类型:
    1.强指针:默认情况下所有指针都为强指针 _ _strong Person *p
    2.弱指针: __weak Person * p

  • 不允许调用release、retain、retainCount
    1.允许重写dealloc,但不能调用[super dealloc]
    2.@property中的参数:*strong *weak *assgin以前retain改为strong

你可能感兴趣的:(iOS中类的本质和ARC基本原理)