在cocos2dx中进行解除操作的最佳方法
Best method for dealloaction in cocos2dx
在Cocos2dx中,哪种方法是解除分配的最佳方法?
- 覆盖ccObject的@"release(("方法
- 创建一个Distractor
您可以使用已经在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);
然后可以用setLayer(new_layer);
分配m_layer
,并用getLayer()
获得它。
该宏仅适用于对象扩展CCObject
。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 重载操作程序时出错>>用于类中的字符串 memebr
- 实现无开销push_back的最佳方法是什么
- 在c代码之间共享数据的最佳方式
- 使用std::source_location报告错误的最佳实践
- 派生类销毁的最佳实践是什么
- 对字符串进行位操作
- 将寄存器设计成可由C和C++访问的外设的最佳实践
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 在Visual C++中测量操作速度的最佳方法
- 用于排序/操作/排序的最佳替代算法
- 在操作数据成员时:以下哪一种被认为是最佳实践
- 在单独的 GUI 类(菜单、工具栏等)之间共享操作的最佳方式是什么
- 最佳实践:文件打开/关闭操作
- 在cocos2dx中进行解除操作的最佳方法