0x01 对象生命周期
对象的生命周期包括诞生(通过alloc或new方法实现)、生存(接收消息并执行操作)、交友(通过复合以及向方法传递参数)以及最终死去(被释放)。
生命周期结束后,它们所占用的内存将被回收并被新的对象使用。
0x02 基本的内存分配规则
Objective-C的对象都是在堆里面生成,然后有一个指针指向它,使用完后不会自动销毁,需要执行dealloc来销毁,否则就会出现内存泄漏:
ClassA *obj1 = [[ClassA alloc] init]; //alloc
[obj1 dealloc]; //dealloc
0x03 引用计数
Cocoa采用了引用计数(Reference Counting)或称为保留计数(Retain Counting)的技术来表示对象的生命。
每个对象都有一个与之相关联的整数作为引用计数器。
当某段代码需要访问一个对象时,该代码就将该对象的引用计数器值+1,表示“我需要访问该对象”;
当某段代码结束对象访问时,该代码就将该对象的引用计数器值-1,表示“不再访问该对象”;
当对象的引用计数器值为0时,表示“不再有代码访问该对象了”&