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 内存分析工具

      

     

  • 相关阅读:
    docker--Dockerfile
    手动制作docker镜像--cnetos:6.9
    docker 容器的网络访问(端口映射)
    docker容器container
    docker镜像
    29 类中的函数重载
    28,友元的尴尬能力
    27,二阶构造模式(构造函数二阶构造)------对象初始化
    21,对象的构造顺序
    算法
  • 原文地址:https://www.cnblogs.com/huntaiji/p/3411921.html
Copyright © 2011-2022 走看看