zoukankan      html  css  js  c++  java
  • ios学习记录 day20 OC 5

    内存管理

    闪退:1.内存泄露(不管理内存)

           2.内存过度释放

    OC:1.手动管理内存(MRC)//弊端 容易过度释放

         2.自动管理内存(ARC)//弊端 错误都出在底层 不易查找

         垃圾回收//只限于MAC应用程序

    手动管理内存:

    引用计数增加:                                    引用计数减少:

    +alloc//开辟内存     0 -> 1            |    

    -retain                  +1                 |     -release    -1

    -copy(只有字符串可以用)原来的不变 |    -autorelease//自动 延迟释放 在某个地方控制

                          新开辟内存 0 -> 1  |

    内存管理:

            //1.内存的所有权:只有对内存有所有权的指针,才能够release 改变引用计数
            //alloc retain copy 都能使对象获得内存的所有权
            //release autorelease 都能使对象放弃内存的所有权
           
            //2.有创建就有回收,有+1就有-1
            //3.引用计数的概念:有多少个对象对内存有所有权
            //4.在一个方法/类中,内存的引用计数要保持平衡(+多少 -多少)     

            //5.dealloc方法 在对象的引用计数为0时,系统强制调用,用于回收内存
            //6.属性的内存管理 对象类型的属性,需要在dealloc中释放一次
            //7.自动释放池 负责释放池子范围内所有被标记为autorelease的对象 @autoreleasepool{}
            //如果是NSAutoreleasePool对象创建的池子,使用drain可以清空池子里的所有对象
            //8.构造器的内存管理 在返回这个对象的时候,使用autorelease自动释放池:

    @autoreleasepool{

    }

  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/lxllanou/p/3628612.html
Copyright © 2011-2022 走看看