cocos2d-x节点(CCAutoreleasePool.h)API
2013-12-06 20:53
337 查看
本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
如果你希望使用自动释放池,那么你就可以参考他了
cocos2d-x节点(CCAutoreleasePool.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记如果你希望使用自动释放池,那么你就可以参考他了
///\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 弹出一个 AutoreleasePool. * * 这个方法确保至少有一个 AutoreleasePool 在 stack 上 * * stack 被破坏时 AutoreleasePool 会弹出 * @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__
相关文章推荐
- Cocos2d-x学习笔记(十四)CCAutoreleasePool具体解释
- cocos2d-x节点(CCTransitionProgress.h)API
- cocos2d-x节点(CCActionTween.h)API
- Cocos2d-x 的CCObject与autorelease 之深入分析
- cocos2d-X 节点(CCActionManager.h)API
- Cocos2d-x之Ref、AutoreleasePool、PoolManager
- cocos2d-x节点(CCImageCommon_cpp.h)API
- cocos2d-x节点(CCTransitionPageTurn.h)API
- Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
- [Cocos2D-X官方文档]:Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
- cocos2D-x 3.5 引擎解析之--引用计数(Ref),自动释放池(PoolManager),自动释放池管理器( AutoreleasePool)
- cocos2d-X 节点(CCActionFrameEasing.h)API
- cocos2d-x节点(CCPlatformConfig.h)API
- cocos2d-x节点(CCClippingNode.h)API
- cocos2d-X 节点(CCNode.h)API
- cocos2d-X 节点(CCActionFrame.h)API
- cocos2d-x节点(CCNotificationCenter.h)API
- cocos2d-x节点(CCPlatformMacros.h)API
- cocos2d-X 节点(CCActionManagerEx.h)API
- cocos2d-x节点(CCParticleExamples.h)API