码迷,mamicode.com
首页 > 其他好文 > 详细

cocos 2dX 中的 autorelease / retain /release 用法小总结。

时间:2016-03-02 17:50:27      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

  我们撰写代码是无法避免是要和内存打交道的,内存的使用和释放也就成为了一个问题 ,在cocos中 有如下几种使用方式。

 

1,autorelease  自动释放池,首先我们来看看相应的开放源码。技术分享

 

当我们对一个对象进行autorelease后,cocos会把这个对象放入内存池,内存池会在用户使用这个对象后自动将对象释放。自动释放池会在下一帧将对象减一,如果没有其他对象使用的话,这个内存池就被释放掉了。

但是有时候我们申请一块内存后并不会马上使用,比如不会马上就某个精灵addChild ,如果我们还是使用autorelease的话在己帧后就会被释放掉了。这时候我们就倾向于使用retain/release组合。

 

2,retain/release  ,同样先看看源码。

技术分享

技术分享

通过代码我们可以看到,retain在每一帧后会把对象+1,而release是把对象--,这样就保证了空间不会再几帧后因为未使用就被释放掉了,当使用过后,release也同样会将其释放,不会引起内存泄漏的问题。

所以当我们使用时,根据实际需要自己选择相应的方式进行编程。

cocos 2dX 中的 autorelease / retain /release 用法小总结。

标签:

原文地址:http://www.cnblogs.com/steven66/p/5235790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!