1

我遇到了一个……有趣的问题。我发现我的程序在标准 get 语句上崩溃了。对于上下文,我将覆盖onEnter函数(来自 Cocos2dx 框架)以在进一步场景中修改后交换图像。

我的修改如下:

图标是map< ClassA, CCSprite* >

currentClassA

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;
}

注意:除了这里,我在其他任何地方调用这个函数都没有问题。

还:

  1. 是的,图标存在

  2. 是的,当前存在

  3. 是的,精灵存在

  4. 当前不是指针

如果有帮助,我正在使用 QNX Momentics IDE。

编辑:: 这是一张图片

在此处输入图像描述

4

1 回答 1

1

看起来它不是一个有效的 CCSprite。在 onEnter 的声明和调用之间,cocos2dx 使用的释放池将其标记为删除。在构造函数期间的某些情况下,CCSprite 似乎没有添加到父级,也没有标记为保留。因此,它被删除了,但仍有一些垃圾。感谢网络

于 2014-08-12T18:34:57.007 回答