关于Cocos2dx的retain\release\autorelease的理解

    众所周知,Cocos2dx的内存管理采用的是类似OC的谁申请,谁释放的原则,理论上只要符合这个规则就不会出现内存泄露。但是Cocos2dx还采用了半自动化的内存管理机制,就是在Create的时候,执行autorelease,这个函数的作用是在下一帧将这个变量的引用计数减一,如果没有其他引用的话,就等于释放掉了。

   如果要他不释放,那要怎么做呢?当然就是用retain\release组合了,这个组合可以保证你的变量在你需要的时候不被释放掉,在你不需要的时候手动释放。好处还是有很多的,比如在使用多线程的时候,由于Cocos2dx的内存管理池并不支持多线程,所以很可能你的程序在运行多线程的时候,在不知道什么地方,就把你的一些变量自动释放掉了,所以就需要retain来保证不被释放。

    写retain\release组合是一个好习惯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值