iOS 簡單理解類的本質
作者:佚名
類是一個對象是Class類型的對象簡稱類對象,一個任意的類型,表示一個Objective-C類,類名就代表著類對象,每個類只有一個類對象。
1.類也是個對象
- 類是一個對象是Class類型的對象簡稱類對象
- Class類型的定義
- // 一個任意的類型,表示一個Objective-C類
- typedef struct objc_class *Class;
- 類名就代表著類對象,每個類只有一個類對象
- 獲取類對象
- // 獲取類對象兩種方式person1 和 person2
- Class person1 = [Person class];
- Person *p = [Person new];
- Class person2 = [p class];
- // 類對象調用類方法
- Person *person3 = [person1 new];
2.類的加載方法和初始化方法
- + (void)load; // 在類加載的時候調用一次
- + (void)initialize; // 在使用某個類的時候調用一次
+load方法:
- 在程序啟動的時候會加載所有的類和分類,并且自動調用所有類和分類的+load方法
- 程序啟動先加載父類然后是子類,也就是先調用父類的+load方法再調用子類的+load方法
- 先加載原始類再加載分類
- 不管程序運行有沒有用到這個類,都會調用+load加載
+initialize方法:
- 在***次使用某個類時比如創(chuàng)建對象,都會調用一次+initialize方法
- 一個類只會調用一次+initialize方法,先調用父類再調用子類的initialize方法
責任編輯:閆佳明
來源:
cnblogs