작성
·
39
0
UI 강의 22:16에서 실행을 했을
아래와 같이 오류가 발생 하네요..
{
Button* ui = new Button();
ui->SetSprite(GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off"), BS_Default);
ui->SetPos({ 200, 200 });
uis.pushback(ui);
}
ui->SetSprite 부분을 //처리할 경우 오류가 안나는 걸로 봐서는 여기서 뭔가 잘못된 것 같은데 아무리 찾아도 안나오네요..
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
질문해주신 UI 강의의 예외 발생 오류와 관련하여, 제가 직접 코드를 볼 수는 없지만 설명해주신 상황을 바탕으로 문제를 추측해보겠습니다.
ui->SetSprite(GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off"), BS_Default);
코드 부분에서 오류가 발생하는 경우, 가장 먼저 확인해야 할 부분은 GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off")
이 부분이 정상적으로 Sprite
객체를 반환하는지 여부입니다. GET_SINGLE(ResourceManager)
가 null
을 반환하거나, GetSprite(L"Start_Off")
가 null
을 반환하는 경우 ui->SetSprite
에 널 포인터를 전달하게 되어 오류가 발생할 수 있습니다.
해결 방안으로는 다음의 접근을 추천드립니다:
1. GET_SINGLE(ResourceManager)
가 정상적으로 ResourceManager
인스턴스를 반환하는지 확인하세요. 만약 null
을 반환한다면 ResourceManager
의 싱글턴 인스턴스가 제대로 생성되지 않은 것일 수 있습니다.
2. GetSprite(L"Start_Off")
메서드가 null
을 반환하지 않는지 확인하세요. 이 메서드가 null
을 반환한다면, "Start_Off"
스프라이트 리소스가 정상적으로 로드되지 않았을 가능성이 있습니다. 리소스 경로 또는 이름에 오타가 없는지, 해당 리소스가 프로젝트에 포함되어 있는지 등을 확인해 보세요.
오류를 해결하기 위해 해당 부분에서 반환되는 객체들이 제대로 생성되고 있는지, 널 포인터가 아닌지 철저히 확인하는 것이 중요합니다.