类的本质
类是一个对象
类本身也是一个对象,是个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