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{

    }

  • 相关阅读:
    BZOJ 1391: [Ceoi2008]order
    BZOJ 4504: K个串
    2019 年百度之星·程序设计大赛
    POJ 2398 Toy Storage (二分 叉积)
    POJ 2318 TOYS (二分 叉积)
    HDU 6697 Closest Pair of Segments (计算几何 暴力)
    HDU 6695 Welcome Party (贪心)
    HDU 6693 Valentine's Day (概率)
    HDU 6590 Code (判断凸包相交)
    POJ 3805 Separate Points (判断凸包相交)
  • 原文地址:https://www.cnblogs.com/lxllanou/p/3628612.html
Copyright © 2011-2022 走看看