zoukankan      html  css  js  c++  java
  • Object-C 基础笔记4---ARC内存管理

    内存管理的原则

    1,对你自己拥有的对象负责.你只能释放自己拥有的对象.(谁污染谁治理).

    2,凡是通过retain,alloc,copy等于段获得了所有权对象,都必须在你不再使用的时候释放.调用release,autorelease等手段释放所有权.

    3,在一定的代码段内,对同一个对象所作的copy,alloc和retain的操作次数应当与release和autorelease操作的次数相等.

    4,可以在类的dealloc方法中释放你所占有的实例变量.

    5,对于便利构造器和访问器来说,你没有通过上面手段获得对象的所有权,因此这些情况下你无须对获得对象进行额外的释放操作.

    6,autorelease只不过意味着"预订延迟发送一条release"消息,当前ARC没有变.

    属性内存管理

     [nil retain]不做任何处理,即[nil message]不做处理.

    对象属性需要在dealloc中释放掉.

    便利构造器内存管理

    +(id)fishWithName:(NSString *)name age:(int)age
    {
        return [[[Fish alloc]initWithName:name age:age]autorelease];
    }

    在哪里alloc就在哪里释放.便利构造器只能使用autorelease来释放内存,延迟发送release消息.

    总结:

    工具:Analyze:command+shift+b 静态编译

      command+i 内存分析工具

      

     

  • 相关阅读:
    Cookies
    一个完整的upstart脚本分析
    squid总结
    python递归读取目录列表
    python删除文件
    ubuntu切割mp3文件
    TP-LINK TL-WN725N V2 / rtl8188eu Linux驱动安装
    ubuntu启动脚本
    su对环境变量做了什么
    sudoers文件配置
  • 原文地址:https://www.cnblogs.com/huntaiji/p/3411921.html
Copyright © 2011-2022 走看看