<span >自动释放池:</span>
<span >///\cocos2d-x-3.0Alpha0\cocos2dx\cocoa//如果你希望使用自动释放池,那么你就可以参考他了#ifndef __autoRELEASEPOol_H__#define __autoRELEASEPOol_H__#include "CCObject.h"#include "CCArray.h"NS_CC_BEGIN/** * @addtogroup base_nodes * @{ */class CC_DLL autoreleasePool : public Object{ /** * 对象池,管理在 array 里面的底层对象 * * 虽然一旦对象被添加,对象池 Array 都保留该对象,适当的调用 Object::release() 可以确保,对象池里面的引用计数不受影响 * 如果 object 在对象池 array 里,不恰当的 object 释放,可以破坏对象池 array 里正常的 Object::release() 事件 */ Array *_managedobjectArray;public: /** * @Js NA * @lua NA */ autoreleasePool(); /** * @Js NA * @lua NA */ ~autoreleasePool(); /** * Add 将给定的对象添加到 pool 里面. * * 相同的对象多次添加到相同的对象 pool ,当 对象 pool 被破坏后,每次加入 object 时,object's 都会调用 Object::release()方法 * * @param object 添加到对象 pool 里面的对象. * @Js NA * @lua NA */ voID addobject(Object *object); /** *把给定的对象从对象 pool 里面移除 * * @param object 即将从对象 pool 里面移除的对象. * @Js NA * @lua NA */ voID removeObject(Object *object); /** * 清除 autorelease pool. * *每次对象被添加到对象 pool 里时都会调用 Object::release() * @Js NA * @lua NA */ voID clear();};class CC_DLL PoolManager{ Array *_releasePoolStack; autoreleasePool *_curReleasePool; autoreleasePool *getCurReleasePool();public: /** * @Js NA * @lua NA */ static PoolManager* sharedPoolManager(); /** * @Js NA * @lua NA */ static voID purgePoolManager(); /** * @Js NA * @lua NA */ PoolManager(); /** * @Js NA * @lua NA */ ~PoolManager(); /** * 清除堆栈里面的所有 autoreleasePool * @Js NA * @lua NA */ voID finalize(); /** * Push 一个新的 autoreleasePool 到 pool stack. * @Js NA * @lua NA */ voID push(); /** * 从 pool stack d出一个 autoreleasePool. * * 这个方法确保至少有一个 autoreleasePool 在 stack 上 * * stack 被破坏时 autoreleasePool 会d出 * @Js NA * @lua NA */ voID pop(); /** * *从当前的 autorelease 池移除一个给定的对象。 * * @param object 要删除的对象。 * * @see autoreleasePool::removeObject * @Js NA * @lua NA */ voID removeObject(Object *object); /** * 把一个给定的对象添加到当前autorelease池。 * * @param object 要添加的对象。 * * @see autoreleasePool::addobject * @Js NA * @lua NA */ voID addobject(Object *object); /** * @Js NA * @lua NA */ frIEnd class autoreleasePool;};// end of base_nodes group/// @}NS_CC_END#endif //__autoRELEASEPOol_H__</span>总结
以上是内存溢出为你收集整理的cocos2dx 内存学习一全部内容,希望文章能够帮你解决cocos2dx 内存学习一所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)