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{

    }

  • 相关阅读:
    解决点击链接自动置顶问题
    ie6 下遮罩层 height 不显示100%的解决方法
    【转帖】微软分布式缓存框架Volocity资源推荐
    Tips 2 MVC实现多个按钮提交的几种方法
    .NET Framework 4 中的新增功能
    Memcached 汇总 不断更新
    理解敏捷Agile
    GPIOPS中断成功,问题仍旧存在 ZEDBOARD,ZYNQ7000
    Xilinx驱动API的一个重要BUG,ZEDBOARD,ZYNQ7000
    RelativeLayout相对布局
  • 原文地址:https://www.cnblogs.com/lxllanou/p/3628612.html
Copyright © 2011-2022 走看看