類的本質
類是一個對象
類本身也是一個對象,是個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