NODE_FUNC ( __TYPE__ )
CREATE_FUNC ( __TYPE__ )
我们经常在头文件中用到上面两个宏。一个重写node()方法,另一个重写create()方法.
NODE_FUNC ( __TYPE__ )代码如下:
CC_DEPRECATED_ATTRIBUTEstatic__TYPE__* node() \
{ \
__TYPE__ *pRet = new __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}
CREATE_FUNC ( __TYPE__ )代码如下:
static__TYPE__* create() \
{ \
__TYPE__ *pRet = new __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}
从代码可以看出重写的作用:
实现二阶段构造:
即先调用构造函数(CCLayer类node方法中调用构造函数),再调用init方法进行初始化(子类中先调用父类的init方法)。
设置其自动释放内存,方便内存管理,不需要手动去释放