执行这个代码之后 android上会有机率出现闪退
bool HelpLayer::onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *unused_event){
this->removeFromParentAndCleanup(true);
if(_gameLayer)
_gameLayer->changeGameStatus(_GameStart);
return false;
}
```
执行这个代码之后 android上会有机率出现闪退
bool HelpLayer::onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *unused_event){
this->removeFromParentAndCleanup(true);
if(_gameLayer)
_gameLayer->changeGameStatus(_GameStart);
return false;
}
```
哎,这个错误貌似都是调用了空的指针,或者不存在的类或者函数之类的容易出现……围观,坐等大神解答 
如果你的_gamelayer是HelpLayer的成员,闪退是正常的了,函数第一行代码就把这个类给删了,你再调用成员变量当然会崩溃了。(你可能很纠结为什么不是每次都崩溃,因为响应这个事件的时机不同,会导致remove的行为不一致,具体的你可以在层范围内触碰和在层范围外触碰进行跟踪测试,或者自己读源码)
了解 我跟下看看
内存管理的话,释放不是应该在下一帧才执行么,应该在这个函数之后才对的啊?
cocos2dx有一个机制的,如果是在自身循环内,不是即刻释放的。您想一下啊,如果在自己的逻辑处理中把自己给删掉了,会怎样呢?以后调用肯定会挂掉的啊。那何时为自身逻辑呢?譬如onTouchBegan,当对象是自身时,在这个事件中即可理解为是自身的逻辑了。在这个时候释放自身是不会即可执行的,而是延迟执行。