Error

C++博客 首页 新随笔 联系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
首先Ref不用解释。
cocos和常见的Ref或者智能指针稍微有点不一样:
首先介绍传统玩法:
传统玩法Ref一般要配合RefPtr使用的,也就是new出来的Ref派生类引用计数为0,要放到一个RefPtr里边来做生命周期管理。

在来看看cocos的玩法:
new出来Ref引用计数是为1的,那么问题来了,这样如果Add和Release成对出现则Ref永远回不到0了。
cocos是这样解决这个问题的:autorelease
调用autorelease,会把当前Ref为1的对象压入pool,然后在下一帧的调用release这样就天下太平了,如果有add到其他节点上他就会变1,如果没有就直接归零析构了
这样就省掉了RefPtr操作


为了保持风格统一,我也必须这样玩,这样的优势是不需要RefPtr,可能脚本绑定会方便不少吧
posted on 2016-03-15 20:52 Enic 阅读(270) 评论(0)  编辑 收藏 引用 所属分类: cocos2d-x

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理