Ich habe ein Cocos2d-x 3,14-Projekt, das ich versuche, auf 3,15 zu migrieren, und es funktioniert perfekt für iOS, aber es funktioniert nicht für Android. 3.14 funktioniert gut auf beiden.Segfault beim Zugriff auf Header deklariert Mitglied
Wenn ich die migrierte Version 3.15 ausführe, erhalte ich einen segfault, wenn ich auf ein Mitglied zugreife, das in der Kopfzeile mit this -> member deklariert wurde. Wenn ich lokale Variablen hinzufüge, funktioniert es gut.
Hpp Datei:
class GameBoard : public Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(GameBoard);
// background
Sprite* background;
void setupBackGround();
...
}
CPP-Datei:
void GameBoard::setupBackground() {
cocos2d::Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
if (this->background == NULL) {
doStuff();
}
}
Die Linie 'this-> Hintergrund' stürzt ab. Hat jemand eine Idee, warum das passieren könnte?
Ich denke, es stürzt nicht auf diesem Hintergrund ab. Ich denke, es stürzt auf doStuff ab, die auf nicht initialisierten Hintergrund zugreifen könnte. – user1438832
Zeigt 'this' zu diesem Zeitpunkt auf eine bestimmte instanziierte Instanz? –
Oder rufst du 'GameBoard :: setupBackground' auf einem bereits gelöschten' GameBoard' Objekt an? – nakiya