Cocos2d-x之Ref、AutoreleasePool、PoolManager

Cocos2d-x之Ref、AutoreleasePool、PoolManager,第1张

概述Ref、AutoreleasePool、PoolManager这三个类的作用是管理对象。 所在文件: CCRef.h,包含: class CC_DLL Clonable、class CC_DLL Ref CCAutoreleasePool.h,包含: class CC_DLL AutoreleasePool、class CC_DLL PoolManager 重点介绍:Ref、Autorelease Ref、autoreleasePool、PoolManager这三个类的作用是管理对象。 所在文件: CCRef.h,包含: classCC_DLLClonable、classCC_DLLRef CCautoreleasePool.h,包含: classCC_DLLautoreleasePoolclassCC_DLLPoolManager 重点介绍:Ref、autoreleasePool、PoolManager三个类。 1、Ref是Director、Node、Action、Even等类的派生类,用于统计Ref派生类被引用的次数,新增的Ref派生对象可以添加到autoreleasePool中。 2、autoreleasePool可以保存多个Ref对象,可以对里面的对象进行撤销删除,也可以在调试时查看相关信息。 3、PoolManager类是一个单例,用于管理autoreleasePool。 ·Ref:
unsigned int _referenceCount; //记录Ref对象被引用次数,当创建一个Ref对象时_referenceCount=1voID retain();     //_referenceCount+1voID release();     //delete Ref对象并将_referenceCount-1Ref* autorelease();     //将Ref对象添加到autoreleasePool 中unsigned int getReferenceCount() const;     //返回当前引用数。protected :  frIEnd class autoreleasePool ;     //autoreleasePool友元类
Ref总结:Ref是Cocos2d-x中许多重要类 (Director、Node、Action、Event等) 基类。Ref主要用于记录对象被引用的次数和对Ref对象的撤销。 Ref的派生类: Director、Node、Action、Even等。 更多派生类参考: http://cn.cocos2d-x.org/doc/cocos2d-x-3.0/df/d28/classcocos2d_1_1_ref.html
·autoreleasePool:
std::vector< Ref*> _managedobjectArray;     //用于保存新增的Ref对象voID addobject(Ref *object);          //添加Ref对象到_managedobjectArray中voID clear();         //遍历_managedobjectArray,调阅Ref对象的release()方法bool contains(Ref * object) const;    //判断Ref对象是否在_managedobjectArrayvoID dump();  //deBUG输出_managedobjectArray的长度,每一个Ref对象被引用次数
autoreleasePool总结:autoreleasePool用于管理多个Ref对象,新增Ref对象、清除pool的所有Ref对象或输出Ref 信息。
·PoolManager: autoreleasePool对象使用std::vector<autoreleasePool *> _releasePoolStack;
voID PoolManager ::push(autoreleasePool * pool) //新增voID PoolManager ::pop() //d出
Manager总结: PoolManager由 单例实现, 用于保存 autoreleasePool 对象,对 autoreleasePool 进行管理 总结

以上是内存溢出为你收集整理的Cocos2d-x之Ref、AutoreleasePool、PoolManager全部内容,希望文章能够帮你解决Cocos2d-x之Ref、AutoreleasePool、PoolManager所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1022427.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存