iOS 的内存管理

1. 内存管理的范围:

  任何继承了NSobject的OC 对象 对其他基本类型无效.

2.对象的基本结构:

 

  1. 每一个oc对象内部都有自己的引用计数器,是一个整数,用来记录这个对象有多少人用
  2. 每个引用计数器在oc内部都有4个字节的存储空间来存储

3.引用计数器的作用:

  1. 当使用alloc new copy创建一个新对象,新对象的引用计数器默认就为1
  2. 当一个对象的引用计数器为0时,这个对像就会被销毁

      3 .对象被销毁时要掉用dealloc方法来释放这个对象拥有的其他对象,使用dealloc方法一定要在最后调用[supper dealloc]

4.引用计数器的操作:

  1. retain 使引用计数器+1(retain方法返回对像本身)
  2. release 使引用计数器-1
  3. retaincount 查看引用计数器的数值

5.注意事项:

  1. 野指针错误,野指针就是指向了僵尸对象(不可用内存)的指针
  2. 给空指针发消息不会报错

僵尸对象:所占用的内存被回收的对象,僵尸对象不能再使用

6.内存管理原则

  1. 谁创建,谁release     如果你通过alloc、new或[mutable]copy来创建一个对象,那么你必须调用release或autorelease
  2. 谁retain ,谁release
  3. 你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作)

  4.  

    你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release)

 

posted @ 2014-10-20 09:44  秋叶飘渺  阅读(163)  评论(0)    收藏  举报