1、只有OC对象才需要进行内存管理
1、OC对象存在堆中
2、非OC对象存在栈中(内存会被系统自动收回)
2、堆和栈
1、栈:有操作系统自动进行释放和分配,其操作方式类似于数据结构中的栈(先进后出)
2、堆:一般有程序员手动分配释放,若不释放,程序结束时可能由操作系统收回,分配方式类似链表
3、引用计数
任何一个对象,刚产生时,引用计数都是为1(当使用alloc、new、copy创建一个对象时,对象的引用计数器默认就是1)
1、retain方法 引用计数+1
2、release方法 引用计数-1
3、retaincount消息,获得对象当前的引用计数值
也就是说一次(alloc new copy)对应一次release,一次retain对应一个release
4、dealloc方法
当一个对象的引用计数为0时,该对象即将被销毁,占用的系统内存将被收回
对象即将被销毁是,系统会调用dealloc方法,重写dealloc方法时必须在最后调用【super dealloc】方法