7内存管理-MRC

@0简介

  内存管理,即内存里各个对象的管理,即内存里各个对象的生命周期的管理,(从面向对象的角度看)

  

@1引用计数器

   默认为1,即有一滴的生命血液,若为0就会死去

@2单个对象的管理

  自己管理自己,自己在方法最后,要给自己release一下,不然自己死不了

@3多个对象的管理

  1重写遗书方法:在里面把属性对象释放,

   

    2重写set方法,里面若前后值不同,就释放旧值,增加新值 (不然旧值死不了)

      

@4自动释放池的,简化release

   简介好处:只要创建时丢进池子里,就不用再写release了

@5property策略,简化set方法

   1retain指令封装了,其对set方法,的release旧值,retain新值两个操作

   2assign : 直接赋值,不做任何内存管理

   3

Øcopy   : release旧值,copy新值(一般用于NSString *)

      

附录

1

n僵尸对象
Ø已经被销毁的对象(不能再使用的对象)
n
n野指针//也可理解为僵尸指针
Ø指向僵尸对象(不可用内存)的指针
Ø给野指针发消息会报EXC_BAD_ACCESS错误
n
n空指针
Ø没有指向存储空间的指针(里面存的是nil, 也就是0)
Ø给空指针发消息是没有任何反应的
Ø
n为了避免野指针错误的常见办法
Ø在对象被销毁之后, 将指向对象的指针变为空指针
原文地址:https://www.cnblogs.com/dzq1991/p/6284402.html