에 액세스하려고합니다. 3.15로 마이그레이션하려고하는 Cocos2d-x 3.14 프로젝트가 있는데, iOS에서는 완벽하게 작동하지만 Android에서는 그렇지 않습니다. 3.14 모두 잘 작동합니다.Segfault가 선언 된 멤버 인
마이그레이션 된 버전 3.15를 실행하면 this-> member를 사용하여 헤더에 선언 된 멤버에 액세스 할 때 segfault가 발생합니다. 지역 변수를 추가하면 잘 작동합니다.
HPP 파일 :
class GameBoard : public Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(GameBoard);
// background
Sprite* background;
void setupBackGround();
...
}
CPP 파일 :
void GameBoard::setupBackground() {
cocos2d::Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
if (this->background == NULL) {
doStuff();
}
}
라인 'this-> 배경'충돌합니다. 왜 이런 일이 일어날 지 아는 사람이 있습니까?
나는 이것이 백그라운드에서 충돌하지 않는다고 생각한다. 나는 초기화되지 않은 배경에 접근하는 doStuff에 충돌하고 있다고 생각한다. – user1438832
'this'는 그 시점에서 일부 인스턴스화 된 인스턴스를 가리 킵니까? –
아니면, 이미 삭제 된'GameBoard' 객체에서'GameBoard :: setupBackground'를 호출하고 있습니까? – nakiya