removeFromParentAndCleanup() 应该是存在bug的把

假定parent1, 和parent2.都已经存在 的情况

auto node = Node::create();

parent1->addchild(node);
node->removeFromParentAndCleanup();
parent2->addchild(node);

这应该是会报错的,追踪了一下。

removeChild(this,cleanup) 函数调用完了之后, 当前的Node 的 _parent并没有被置为 nullptr, 应该是this 指针做参数,函数内部处理的是 this 指针的拷贝把。不是直接处理的this。

继续尝试了一下,发现 node->removeFromParentAndCleanup(); 之后, node 的指针已经破坏成了野指针。肯定存在问题。

应该调用 removeFromParentAndCleanup(false); 但是如果需要 用到 stopAllActions() 并且removeFromParentAndCleanup() 就会出错了。

楼主用的是哪个版本的?

调用node->removeFromParentAndCleanup();的时候,node的指针变成野指针了(被释放了)。你可以在addChild前,node->retian()一下,绝对不会有问题。总来说,是lz用得不对

retain() 一下,add到parent在release一下??你这么说我到时知道他是那里的问题了。