我遇到了一个......有趣的问题。我发现我的程序崩溃了标准的get语句。对于上下文,我重写了onEnter
函数(来自Cocos2dx框架),以便在进一步场景中进行修改后交换图像。
我的修改如下:
图标为map< ClassA, CCSprite* >
current
属于ClassA
void onEnter(){
<parent class>::onEnter();
CCSprite* sprite = icons[current];
if (sprite){
CCNode* parent = sprite->getParent(); //Crashes Here
if (parent){...}
}
}
来自Cocos2d-x:
CCNode* getParent(){
return m_pParent;
}
注意:除了这里,我在其他地方调用此功能时没有问题。
此外:
是的,图标存在
是,目前存在
是的,精灵存在
当前不是指针
如果它有助于我使用QNX Momentics IDE。
编辑::这是一张图片
答案 0 :(得分:1)
看起来它不是有效的CCSprite。在声明和调用onEnter之间,cocos2dx使用的发布池将其标记为删除。在某些情况下,在构造函数期间,CCSprite似乎未添加到父级,并且未标记为保留。因此,它被删除但仍留下一些垃圾。谢谢Cyber。