1、不调用autorelease()的情况

        TestVO* vo = new TestVO();//未调用create()方法创建,没有执行过autorelease()vo->init();//这种情况下局部变量无法被回收vo->release();//需要手动调用release()方法//CC_SAFE_DELETE(vo);//也可以用这种方法删除

2、调用autorelease()的情况

        TestVO* vo = TestVO::create(); //引用计数=1//create()方法中执行过autorelease()//引用计数设为1//在帧结束的时候引用计数-1//引用计数为0时被回收

3、手动调用retain()防止被删除

TestVO* vo = TestVO::create();//引用计数=1        vo->retain();//引用计数=2//......//帧结束 引用计数-1 值为1 不回收//......//下一帧开始时 引用计数+1 值为2//......//调用release()方法vo->release();//引用计数-1//......//帧结束 引用计数-1 值为0 被回收

4、被添加到cocos2d的数据结构时

        TestVO* vo = TestVO::create();//引用计数=1mList->pushBack(vo);//引用计数=2mList->popBack();//引用计数=1 能被回收Vector<TestVO*>* mList2 = new Vector<TestVO*>();mList2->pushBack(vo);//引用计数=2 无法被回收//如果mList2是局部变量,其他地方无法把vo从mList2中删除,vo将无法被回收

5、类的成员

如果是继承Ref类型的数据,如果用create()创建,需要在创建后调用retain()函数,否则会在帧的结束被回收。

如果是new的方法初始化的,不需要调用retain()

删除该数据或赋其他的值时,都需要调用release()方法

new 的方法创建的可以用CC_SAFE_DELETE(vo)这种方式删除。

转载于:https://blog.51cto.com/putaotiancu/1598272

Cocos2dx学习笔记(1) Ref类型数据 垃圾回收机制相关推荐

  1. 学习笔记【Java 虚拟机②】垃圾回收

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 总目录 学习笔记[Java 虚拟机①]内存结构 学习笔记[Java 虚拟机②]垃圾回收 学习笔记[Java ...

  2. Python可变与不可变类型及垃圾回收机制

    1. 可变与不可变类型 1.1  可变类型 在id不变的情况下,value可以改变,则称之为可变类型.列表.字典与集合是可变的. l1 = [1,2,3,4,5] print(id(l1)) l1[1 ...

  3. 【Python】学习笔记总结5(Python垃圾回收及内存优化)

    文章目录 五.Python垃圾回收 1.引用计数(主) 2.GC负责的主要任务 3.标记-清除 4.引用计数不能回收的案例分析 5.分代收集 6.GC的阈值 7.GC垃圾回收自动触发机制 7.内存优化 ...

  4. JVM学习笔记(二):垃圾回收、垃圾回收算法、垃圾回收器(Serial、Parallel、CMC、G1)、内存分配原则实战

    垃圾回收 一.判断对象是否可以被回收 1.引用计数计数法 内容:在对象中添加一个引用计数器,每当有一个地方引用它,计数器就加一:当引用失效时,计数器就减一:任何时刻计数器为零的对象都是不可能在被使用的 ...

  5. JVM学习笔记之四:分代垃圾回收

    2019独角兽企业重金招聘Python工程师标准>>> 如图所示,在HotSpot虚拟机中共划分有三个代:年轻代(young generation),年老代(old generati ...

  6. [Javascript 高级程序设计]学习心得记录2 Javascript的垃圾回收机制

    Javascript 是自动垃圾收集机制,不需要像c/c++的开发人员一样担心内存泄漏问题.这种垃圾收集机制通过找出那些不再使用的变量,释放其占用的内存从而达到垃圾回收的效果.而如何如何找出那些不再使 ...

  7. Java高级进阶学习资料!Java虚拟机的垃圾回收机制

    Maven权威指南 首先,本书适合所有Java程序员阅读.由于自动化构建.依赖管理等问题并不只存在于Java世界,因此非Java程序员也能够从该书中获益.无论你是从未接触过Maven.还是已经用了Ma ...

  8. Java 技术之垃圾回收机制

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 垃圾回收机制是 Java 非常重要的特性之一,也是面试题的常客.它让开发者无需关注空间的创建和 ...

  9. JVM (二) 垃圾回收机制概念+垃圾回收器种类

    前言 做一个有趣的程序员.哈哈哈哈 本次铁村的小蓝猫主要给大家详细分享JVM中垃圾回收机制 学习JVM 肯定是要了解垃圾回收机制的. 分享前,我们先了解下本次分享内容的框架. 一.垃圾回收机制定义 1 ...

最新文章

  1. netca error
  2. STL容器汇总(一)
  3. 如何在论文中自动生成标准的参考文献格式
  4. python 修改图片尺寸_python 批量修改图片大小
  5. SQL Server 2005大小写敏感设置
  6. Atitit 信息检索 之音乐检索实践 艾提拉注 目录 1. 常规检索 歌手 歌名 1 1.1. 年代检索 1 1.2. 歌词检索(可以依靠web 1 1.3. 哼唱检索 原曲检索(可以使用酷
  7. pyqt5 treewidget图标_Python基础之PyQt5写TreeWidget(二)--代码篇
  8. 精仿B站播放器外加弹幕库源码-带后台
  9. Visio绘图中遇到的一些问题及相应解决方法(持续更新)
  10. ora-01033错误恢复
  11. 谭浩强第五版课后习题答案-----第三章
  12. 计算机网络读书笔记DAY4(3)
  13. python提取关键词_【Python工具】30万关键词提取疑问词只需2秒,效率高到飞起!...
  14. 爬虫-百度安全验证-图片旋转验证-深度学习解决方案
  15. ECC有关DER文件的解析(Java)
  16. 苹果吃鸡蓝牙耳机推荐
  17. RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the
  18. 亚利桑那大学公开课:【知识产权课程】笔记
  19. 解决git clone时出现Failed to connect to github.com port 443: Timed out的问题
  20. USBCAN在江淮新能源汽车诊断工具的应用案例

热门文章

  1. Syntax error, parameterized types are only available if source level is 1.5 or greater
  2. 2016 大连网赛---Weak Pair(dfs+树状数组)
  3. 解决 PowerDesigner 错误 The generation has been cancelled…
  4. 基类指针和子类指针相互赋值
  5. C++函数声明和定义
  6. Swift5关于根据一个frame得到最大X值和最大Y值
  7. GoogLeNet系列解读
  8. 社工库网址与制作方法
  9. vue中使用swiper,vue-awesome-swiper
  10. django 按钮的样式_【实战演练】Python+Django网站开发系列11-成绩查询与成绩录入...