Я прочитал много (МНОГИЕ!) EXC_BAD_ACCESS
примеров, но, похоже, ни одно из предложенных решений не работает для решения моей проблемы.По сути, у меня есть геймплей, который выглядит следующим образом:
int GameEngine::Run()
{
if( this->OnInit() == false )
return -1;
SDL_Event Event;
while( this->IsRunning )
{
while( SDL_PollEvent( &Event ) )
{
INPUT->Event( &Event );
for( int i = 0; i < this->objects.size(); i++ )
{
this->objects[i]->OnEvent();
}
if( INPUT->Type( SDL_QUIT ) )
this->Stop();
}
this->OnLoop();
this->OnRender();
}
this->OnCleanUp();
this->PrintObjects();
return 0;
}
Скорее всего, проблема вызывает
INPUT->Event( &Event );
.Эта функция выглядит следующим образом в классе Input
:
void Input::Event( SDL_Event* CurrEvent ) { this->Current_Event = CurrEvent; }
() Это также строка, которая дает мне EXC_BAD_ACCESS
)
Итак this->Current_Event
во входном классе всегда будет содержаться текущее событие, так как оно будет обновлено из цикла игры с событием, которое было самым последним для опроса.
В настоящее время я не знаю, как получить трассировку стека в Xcode, ноесли я выполняю какую-либо ручную трассировку, она выглядит следующим образом:
Input::Event()
GameEngine::Run()
main()
А затем она переходит в код SDL.
Кто-нибудь знает, в чем может быть проблема?Скажи мне, если тебе нужно знать что-то еще!