• 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为了避免野指针错误的常见办法
    Ø在对象被销毁之后, 将指向对象的指针变为空指针
  • 相关阅读:
    Docker宿主机登陆Container方法
    Get Docker for CentOS and Installing Docker
    CentOS7网络配置
    国内npm镜像源推荐及使用
    CentOS6.5源码安装python3.5.2
    阿里云SLB后Nginx、Tomcat获取真实IP
    MacOS清除管理员密码
    SVN-修改已提交的日志
    爬虫的初始和requests模块基础用法
    利用面向对象写的登录与注册
  • 原文地址:https://www.cnblogs.com/dzq1991/p/6284402.html
Copyright © 2020-2023  润新知