작성
·
44
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. HanMa_Man님.
가위바위보 앱에서 comChoice 값이 랜덤으로 바뀌지 않는 문제는 특정한 부분에서 변수가 다시 초기화되지 않는 이유 때문일 수 있습니다. 유사한 문제가 다뤄진 몇 가지 게시글을 참조해 해결 방법을 안내해드리겠습니다.
해결 방법 요약:
Optional Binding: 먼저 currentTitle
을 안전하게 언래핑하는 것이 중요합니다. 이를 위해 optional binding을 사용하세요.
@IBAction func rpsButtonTapped(_ sender: UIButton) {
// 가위/바위/보(enum type)를 선택해서 그 정보를 저장해야함
// 버튼의 문자를 가져옴 (Using optional binding to prevent crashes)
if let title = sender.currentTitle {
switch title {
case "가위":
myChoice = Rps.scissors
case "바위":
myChoice = Rps.rock
case "보":
myChoice = Rps.paper
default:
break
}
} else {
// Handle the case where currentTitle is nil
print("Button title is nil")
}
}
comChoice 변수 초기화 문제: 리셋 버튼이 눌렸을 때 comChoice
를 다시 랜덤값으로 설정하는 것이 필요합니다.
@IBAction func resetButtonTapped(_ sender: UIButton) {
// 1) 컴퓨터가 다시 처음 준비 이미지뷰에 표시
comImageView.image = #imageLiteral(resourceName: "ready")
comChoiceLabel.text = "준비"
// 3) 내 선택 이미지뷰에도 준비 이미지를 표시
myImageView.image = #imageLiteral(resourceName: "ready")
myChoiceLabel.text = "준비"
// 5) 메인 레이블 *선택하세요* 표시
mainLabel.text = "선택하세요"
// 6) 컴퓨터가 다시 랜덤 가위/바위/보를 선택하고 저장
comChoice = Rps(rawValue: Int.random(in: 0...2))!
}
핵심 해결 방법을 테스트: viewDidLoad
혹은 초기화 코드에서 comChoice
가 정상적으로 할당되는지 확인하고, 리셋 시 안전하게 재할당되는지 테스트해보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다 .. 잘 됩니다 ^^