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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)