• 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{

    }

  • 相关阅读:
    Linux命令可以在后台运行,不随shell的关闭而关闭
    Linux系统创建python虚拟环境
    crontab定时任务不执行的一些原因总结
    解决ubuntu下定时任务不执行问题
    18-crm项目-kingadmin,完成crm用户认证登陆
    17-crm项目-kingadmin,前端展示数据库中不存在的字段
    16-crm项目-kingadmin,权限管理
    15-crm项目-kingadmin,自定义用户认证
    14-crm项目-kingadmin,动态url菜单优化
    记录安全问题---2020年9月24号
  • 原文地址:https://www.cnblogs.com/lxllanou/p/3628612.html
Copyright © 2020-2023  润新知