在cocos2dx中进行交易的最佳方法

时间:2013-03-19 04:47:02

标签: c++ ios cocos2d-x

在Cocos2dx中,这是解除分配的最佳方法吗?

  1. 覆盖ccObject的@“release()”方法。
  2. 创建一个Distructor。

1 个答案:

答案 0 :(得分:0)

您可以使用已在cocos2d-x中定义的宏。

#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; \
    } \
}

#define CC_SAFE_DELETE(p)            do { if(p) { delete (p); (p) = 0; } } while(0)
#define CC_SAFE_RELEASE(p)            do { if(p) { (p)->release(); } } while(0)
#define CC_SAFE_RETAIN(p)            do { if(p) { (p)->retain(); } } while(0)

例如:

CC_SYNTHESIZE_RETAIN(CCLayer*, m_layer, Layer);

然后,您可以使用m_layer分配setLayer(new_layer);,并使用getLayer()进行分配。

此宏仅适用于对象扩展CCObject