zoukankan      html  css  js  c++  java
  • 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为了避免野指针错误的常见办法
    Ø在对象被销毁之后, 将指向对象的指针变为空指针
  • 相关阅读:
    爱生气的书店老板
    数组的度
    最大连续 1 的个数
    最大连续1的个数 III
    尽可能使字符串相等
    Java数据类型转换
    CSS卡片制作
    关于eclipse关联源码问题
    tomcat服务器对于http协议的处理
    shiro源码分析-认证过程
  • 原文地址:https://www.cnblogs.com/dzq1991/p/6284402.html
Copyright © 2011-2022 走看看