pragma mark 类的启动过程
pragma mark 概念
/*
#warning 当前类 被加载到内存的时候调用
// load : 加载;装载;装货
// 只要程序 启动 就会将所有类的代码 加载到内存中
// load 方法会在当前类 被加载到内存的时候调用, 而且仅会调用一次
#warning 当 当前类第一次被使用的时候 就会调用(创建类对象的时候)
// initialize : 初始化
// initialize 方法在整个程序的运行过程中 只会被调用一次, 无论你使用多少次 这个类都只会调用一次
// initialize 用于 对某一个类进行一次性的初始化
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#import "GoodStudent.h"
#pragma mark main函数
int main(int argc, const char * argv[])
{
Person *p = [[Person alloc]init];
Person *p1 = [[Person alloc]init];
Person *p2 = [[Person alloc]init];
Person *p3 = [[Person alloc]init];
GoodStudent *s = [[GoodStudent alloc]init];
return 0;
}
Person.h //人类
#import <Foundation/Foundation.h>
@interface Person : NSObject
@end
Person.m
#import "Person.h"
@implementation Person
#warning 当前类 被加载到内存的时候调用
// load : 加载;装载;装货
// 只要程序 启动 就会将所有类的代码 加载到内存中
// load 方法会在当前类 被加载到内存的时候调用, 而且仅会调用一次
// 如果存在继承关系, 先调用父类的load方法, 在调用子类的load方法
+ (void)load
{
NSLog(@"person类被加载到内存了");
}
#warning 当 当前类第一次被使用的时候 就会调用(创建类对象的时候)
// initialize : 初始化
// initialize 方法在整个程序的运行过程中 只会被调用一次, 无论你使用多少次 这个类都只会调用一次
// initialize 用于 对某一个类进行一次性的初始化
// initialize 和load一样,如果存在在继承关系,会先调用父类的initalize , 再调用子类的initialize方法
+ (void)initialize
{
NSLog(@"person initialize");
}
@end
Student.h //学生类 (人类的子类)
#import "Person.h"
@interface Student : Person
@end
Student.m
#import "Student.h"
@implementation Student
+ (void)load
{
NSLog(@"student 类被加载到内存了");
}
+ (void)initialize
{
NSLog(@"student initialize");
}
@end
goodStudent.h //好学生类 (学生的子类)
#import "Student.h"
@interface GoodStudent : Student
@end
goodStudent.m
@implementation GoodStudent
+ (void)load
{
NSLog(@"goodStudent 类被加载到内存了");
}
+ (void)initialize
{
NSLog(@"goodStudent initialize");
}
@end
Car.h //Car (汽车类)
#import <Foundation/Foundation.h>
@interface Car : NSObject
@end
Car.m
@implementation Car
+ (void)load
{
NSLog(@"car类被加载到内存了");
}
+ (void)initialize
{
NSLog(@"car initialize");
}
@end