zoukankan      html  css  js  c++  java
  • 内存管理1 retain & release

    内存管理法则

    1:谁创建谁释放alloc /new/ copy------>release/autorelease.一一对应,不是你创建的就不用你释放。

    2:除了alloc /new/ copy创建的对象其他的都声明了autorelease。

    3:谁retain谁release,只要调用了retain,无论何时生成的对象都应该调用release。

        alloc函数是创建对象使用,创建完成后计数器加 1 

                  只使用一次
      retain 是对一个对象的计数器加 1
                 可以调用多次
     release 是对一个对象的计数器减 1  
                 减到0 对象就会从内存中释放掉
     
      内存管理总结
     
    1: Objetctive-C的内存管理机制与.net/java那种全自动的立即回收机制是不同的,它本质上还是C语言中的手动管理方式,只不过稍微加了一些自动方法。
    2:Objective-C的内存管理是基于引用计数的。要做的事情只是关注的引用,而释放内存的工作实际上由运行环境完成。
    3:在最简单的情形中,分配的(alloc)对象,或者是保留(retain)在一些地方的对象,都需要发送一个release消息。这也意味着,如果使用了一次alloc,然后又retian了一次,那你需要release两次才能释放该对象的内存
  • 相关阅读:
    多线程之线程同步中的锁定lock、Monitor(转)
    信号同步
    窗体间传值的最佳方式
    Semaphore的理解
    推荐算法相关
    基于Spark的GBDT + LR模型实现
    基于Spark和Tensorflow构建DCN模型进行CTR预测
    神经网络(未完)
    互联网金融借款违约预测
    Python3基础复习
  • 原文地址:https://www.cnblogs.com/yesihoang/p/4481712.html
Copyright © 2011-2022 走看看