1.+load方法
- 在程序啟動的時候會加載所有的類和分類始赎,并調用所有類和分類的+load方法(只會調用一次)
- 先加載父類,再加載子類;也就是先調用父類的+load宏多,再調用子類的+load
- 先加載元原始類疯攒,再加載分類
- 不管程序運行過程有沒有用到這個類嗦随,都會調用+load加載
@implementation Person
+ (void)load
{
NSLog(@"%s", __func__);
}
@end
@implementation Student : Person
+ (void)load
{
NSLog(@"%s", __func__);
}
@end
輸出結果:
+[Person load]
+[Student load]
2.+initialize
- 在第一次使用某個類時(比如創(chuàng)建對象等),只會調用一次+initialize方法
- 一個類只會調用一次+initialize方法敬尺,先調用父類的枚尼,再調用子類的
@implementation Person
+ (void)initialize
{
NSLog(@"%s", __func__);
}
@end
@implementation Student : Person
+ (void)initialize
{
NSLog(@"%s", __func__);
}
@end
int main(int argc, const char * argv[]) {
Student *stu = [Student new];
return 0;
}
輸出結果:
+[Person initialize]
+[Student initialize]
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者