iOS 的内存管理
1. 内存管理的范围:
任何继承了NSobject的OC 对象 对其他基本类型无效.
2.对象的基本结构:
- 每一个oc对象内部都有自己的引用计数器,是一个整数,用来记录这个对象有多少人用
- 每个引用计数器在oc内部都有4个字节的存储空间来存储
3.引用计数器的作用:
- 当使用alloc new copy创建一个新对象,新对象的引用计数器默认就为1
- 当一个对象的引用计数器为0时,这个对像就会被销毁
3 .对象被销毁时要掉用dealloc方法来释放这个对象拥有的其他对象,使用dealloc方法一定要在最后调用[supper dealloc]
4.引用计数器的操作:
- retain 使引用计数器+1(retain方法返回对像本身)
- release 使引用计数器-1
- retaincount 查看引用计数器的数值
5.注意事项:
- 野指针错误,野指针就是指向了僵尸对象(不可用内存)的指针
- 给空指针发消息不会报错
僵尸对象:所占用的内存被回收的对象,僵尸对象不能再使用
6.内存管理原则
- 谁创建,谁release 如果你通过alloc、new或[mutable]copy来创建一个对象,那么你必须调用release或autorelease
- 谁retain ,谁release
-
你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作)
-
你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release)
浙公网安备 33010602011771号