内存管理
堆:需要手动释放。
栈:系统自动管理。
所谓内存管理,就是对内存进行管理,涉及的操作有:
- 分配内存 :比如创建一个对象,会增加内存占用
- 清除内存 :比如销毁一个对象,能减小内存占用
内存管理的管理范围
- 任何继承了NSObject的对象
- 对其他非对象类型无效(int、char、float、double、struct、enum等)
只有OC对象才需要进行内存管理的本质原因
- OC对象存放于堆里面
- OC基础类型一般放在栈里面(栈内存会被系统自动回收)
引用计数器的常见操作
给对象发送一条retain消息,可以使引用计数器值+1(retain方法返回对象本身)
给对象发送一条release消息,可以使引用计数器值-1
给对象发送retainCount消息,可以获得当前的引用计数器值
需要注意
的是: release并不代表销毁\回收对象,仅仅是计数器-1。