我有一个CCLayer。
我从另一个函数创建一个CCNode *,返回它并将其添加到CCLayer。
当我退回去删除它时,我被告知它不存在
cocos2d::CCNode* Class::function()
{
cocos2d::CCNode* n = cocos2d::CCNode::create()
... I add stuff to it....
node->setTag(9);
return node;
}
然后我去其他地方:
mynode = Class::function();
addChild(mynode, 3);
并准备好删除时:
removeChildByTag(9);
我被告知孩子不存在
我甚至尝试过
mynode = Class::function();
mynode->setTag(9);
addChild(mynode, 3);
并准备好删除时:
removeChildByTag(9);
我被告知孩子不存在
答案 0 :(得分:0)
您需要在正在调用的函数中保留Node,否则在创建函数后,您创建的节点将自动从自动释放池中删除。
cocos2d::CCNode* n = cocos2d::CCNode::create()
n->retain();