Я переключаю сцены, когда мой персонаж выигрывает или проигрывает игру. Я получаю сообщение о том, что освобожденный указатель не был выделен.Игра падает при смене сцен, освобождение указателя не выделено
Иногда игра не разбивается и возвращается к игровому виду. Но иногда игра вылетает в основном на этой линии:
int retVal = UIApplicationMain(argc, argv, nil, @"AppController");
ошибка «плохой доступ»;
переключаюсь на конец экрана с помощью CCdirector:
cocos2d::CCDirector::sharedDirector()->replaceScene(GameWon::scene());
Затем в GameWon.cpp создать новую игру сцену, чтобы начать новую игру:
cocos2d::CCDirector::sharedDirector()->replaceScene(Controller::scene());
Понятия не имею, что не вызывает Эта проблема. Странно то, что он не всегда терпит крах на симуляторе. Какие-нибудь советы?
редактировать
Так я узнал, что эта проблема, я просто не знаю, почему это проблема. По-видимому, деструктор моего контроллера вызван, когда я создаю новую сцену. В этом деструкторе я освобождаю мой объект модели:
Controller::~Controller()
{
free(pModel);
}
Когда я не освободил объект модели он работает как шарм. Однако, в инициализации моего конструктора я делаю это:
pModel = Model::create();
Так что я не знаю, почему pModel будет указатель, который будет освобождена, но не выделяется?