GreekBank极客班-Objective-c 初始化器和析构器

初始化器:

初始化器主要用于初始化对象实例或者类型,是一个特殊的函数。

对象初始化器:-(id)init可以重载多个

类型初始化器:+(void)initialize只能有一个

初始化对象实例时,init通常和alloc搭配使用。

init所做的事情可自行定义:

调用父类初始化器[super init](前置调用)

初始化当前对象实例变量

而类型初始化器initialize负责类型级别的初始化,并在每个类使用前被系统自动调用,且每个进程周期中,只能被调用一次;子类的initialize会自动调用父类的initialize(前置调用)

对象解构器dealloc负责释放对象拥有的动态资源:

自动实现:ARC机制将对象属性引用计数减持

手动实现:释放不受ARC管理的动态内存,例如malloc分配

手动实现:关闭非内存资源,如文件句柄,网络端口等

dealloc是由ARC根据对象引用计数规则,在使用内存前,自动调用,且没有手工调用。

子类的dealloc会自动调用父类的dealloc(后置调用)

你可能感兴趣的:(GreekBank极客班-Objective-c 初始化器和析构器)