Cocos2d-x游戏开发之CC_SAFE_RELEASE
来源:互联网 发布:mysql 32位 64位 编辑:程序博客网 时间:2024/06/05 13:01
本站文章转载务必在明显处注明:原文链接:http://blog.csdn.net/cjsen/article/details/9357531
前言
CC_SYNTHESIZE_RETAIN 相当于 @property(nonatomic, retain),申明一个Public变量,必须注意的是这里申明的变量必须是继承自CCObject的。帮你自动生成管理对象的retain与release。
源码
#define CC_SYNTHESIZE_RETAIN(varType, varName, funName) \private: varType varName; \public: virtual varType get##funName(void) const { return varName; } \public: virtual void set##funName(varType var) \{ \ if (varName != var) \ { \ CC_SAFE_RETAIN(var); \ CC_SAFE_RELEASE(varName); \ varName = var; \ } \}
在源码上,就是自动帮你生成set与get函数;
.h声明说明
//CC_SYNTHESIZE_RETAIN(varType, varName, funName) CC_SYNTHESIZE_RETAIN(CCSprite*, m_plyerSprite, PlyerSprite);varType:声明的变量类型
varName:当前类的私有变量名(可以当前类中调用)
funName:set与get的方法名
.ccp中的析构函数中做如下调用(释放的过程)
TiledScene::TiledScene():m_plyerSprite(NULL){ };TiledScene::~TiledScene(){ CC_SAFE_RELEASE(m_plyerSprite);};
在其他地方调用如下(会自动生成get与set方法)
pScene)->getPlyerSprite();
另外:类似生成set与get方法的宏还有
CC_SYNTHESIZE (CC_SYNTHESIZE(float,m_height, Height);)
- Cocos2d-x游戏开发之CC_SAFE_RELEASE
- cocos2d-x游戏引擎开发之流程
- Cocos2d-x游戏开发之图片元素
- cocos2d-x游戏开发之二
- Cocos2d-X游戏开发之CCTouchDelegate
- cocos2d-x游戏开发之三
- Cocos2d-x游戏开发之随机数使用
- Cocos2d-x游戏开发之音效使用
- Cocos2d-x游戏开发之Lua
- Cocos2d-x游戏开发之jsoncppdemo
- cocos2d-x游戏开发
- Cocos2d-x 3.x游戏开发之旅
- Cocos2d-x 3.x游戏开发之旅---<Lambda>
- Cocos2d-x 3.x游戏开发之旅---<消息转发>
- Cocos2d-x 3.x游戏开发之旅---<状态机>
- Cocos2d-x 3.x游戏开发之旅---<UI模块>
- Cocos2d-x 3.x游戏开发之旅---<单例要加retain()>
- [ IOS-Cocos2d-x 游戏开发] - cocosBuilder 开发之二
- IOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途
- java解决double和float精度不准确的问题
- struts2入门
- IAR contains unknow tools 解决方法
- OpenMP并行构造的schedule子句详解
- Cocos2d-x游戏开发之CC_SAFE_RELEASE
- Android之用PopupWindow实现弹出listview形式菜单
- Android SQLiteException: database is locked异常的解决办法
- action中获取request对象方法
- android dev ------ Android开发之广播机制
- Win7(32位)下安装vs2010安装失败Error code -939523550
- PHP网站安全,PHP程序安全的几个措施
- 简单有效-禁止其他人到你电脑上用QQ
- 初学opencv小记-对像素的操作