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_____子类______");
}
打印结果:
类的初始化方法<创建对象才会执行,需要触发才会执行,且只会调用一次>
+ (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 ");
}
打印