load初始化方法<加載到內存就會執行,不需要觸發,且只會調用一次>
+ (void)load
只要加載內存中就會調用,如果沒有觸發該事件也會調用。
在main函數之前調用
ViewController.h //父類
+ (void)load{
NSLog(@"load父類");
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NestViewController *nest =[[NestViewController alloc]init];
[self.navigationController pushViewController:nest animated:YES];
}
NestViewController 繼承自 ViewController //子類
+ (void)load{
NSLog(@"load_____子類______");
}
打印結果:
load方法
類的初始化方法<創建對象才會執行,需要觸發才會執行,且只會調用一次>
+ (void)initialize
1.函數并不會每次創建對象都調用,只有這個類第一次創建對象時才會調用。
2.只有創建對象才會被調用,而且只會調用一次,如果子類重寫了該方法,當子類創建的時候也只會調用一次,如果子類沒有實現該用法,則會調用父類中的該方法。
在main函數之后調用
ViewController.h //父類
+ (void)initialize{
NSLog(@"父類 initialize ");
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NestViewController *nest =[[NestViewController alloc]init];
[self.navigationController pushViewController:nest animated:YES];
}
NestViewController 繼承自 ViewController //子類
//如果子類沒有實現該方法,則會調用父類中的該方法,
+ (void)initialize{
NSLog(@"子類 initialize ");
}
打印
initialize方法.png