初始化器(初始化)
对象初始化器:-(id)
类型初始化器:+(void)
析构器(释放)
对象析构器:-(void)dealloc
对象初始化器
1. init和alloc(类方法)搭配使用
alloc:分配内存-》将内存置零(0,NULL)
init可能返回与对象不同的指针,因此应该嵌套使用[[alloc]init]
-(id)init 默认初始化器
自定义:
1. 先调用父类初始化器self=[super init];
2. if(self){初始化实例变量 "_abc"(copy是为了创造一个新的对象)}
3. return self;
较为简单的初始化器(便捷)一般调用最复杂的初始化器(指定)
2. new = alloc+init
new不能传递参数
类型初始化器
+(void)initialize
自动调用父类初始化器
if(self == [Book class])判断是否为Book类
出现类之前会先调用类初始化器
析构器
-(void)dealloc
释放对象的动态资源
dealloc功能:
(自动)对对象属性引用计数减持(-1)
(手动)malloc的内存要在dealloc里手工释放free();
(手动)关闭非内存资源
(自动)调用父类dealloc
dealloc在释放内存前自动调用