初始化器:
初始化器主要用于初始化对象实例或者类型,是一个特殊的函数。
对象初始化器:-(id)init可以重载多个
类型初始化器:+(void)initialize只能有一个
初始化对象实例时,init通常和alloc搭配使用。
init所做的事情可自行定义:
调用父类初始化器[super init](前置调用)
初始化当前对象实例变量
而类型初始化器initialize负责类型级别的初始化,并在每个类使用前被系统自动调用,且每个进程周期中,只能被调用一次;子类的initialize会自动调用父类的initialize(前置调用)
对象解构器dealloc负责释放对象拥有的动态资源:
自动实现:ARC机制将对象属性引用计数减持
手动实现:释放不受ARC管理的动态内存,例如malloc分配
手动实现:关闭非内存资源,如文件句柄,网络端口等
dealloc是由ARC根据对象引用计数规则,在使用内存前,自动调用,且没有手工调用。
子类的dealloc会自动调用父类的dealloc(后置调用)