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

cocos内存管理

时间:2018-03-29 02:14:57      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:没有   div   release   inf   man   info   auto   对象   结束   

几个关键方法:

AutoreleasePool类中的clear方法,在每一帧的最后,会将_managedObjectArray中的autorelease对象移除,同时对每个对象执行一边release方法。

技术分享图片

Ref类的release方法中,对引用计数减1,如果引用计数等于0,则释放这个对象。

AutoreleasePool其实只保留一帧内创建的Autorelease对象,如果在这一帧内,该对象的引用计数没有增加,也就是说没有附加到父节点上,没有对其执行retain,引用计数没有加1,仍是创建时候的1的话,那么这个对象在一帧结束时,调用release,就会释放掉。

如果这个对象在clear之前,附加到了父节点上,那么它就不会释放掉,但是会从池中移除。等到它从父节点remove的时候,会执行release,从而达到释放内存的目的。

 

cocos内存管理

标签:没有   div   release   inf   man   info   auto   对象   结束   

原文地址:https://www.cnblogs.com/jimobuwu/p/8667259.html

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