Cocos2d-x游戏开发之CC_SAFE_RELEASE

本站文章转载务必在明显处注明:原文链接:http://blog.youkuaiyun.com/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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值