가위바위보 게임을 만들어 보는 와중에 오류 해결한 내용을 모아 정리해봤다.
Type 오류
컴퓨터의 랜덤으로 가위바위보를 설정하는 코드를 만들던 중 Rps 파일을 상속받아 rawValue를 통해 랜덤으로 선택하도록 구현한 코드를 짜봤다.
var comChoice: Rps = Rps(rawValue: 0...2)!
로 설정했더니 하단과 같은 오류가 나타났다.Cannot convert value of type 'ClosedRange<Int>' to expected argument type 'Int’
고민 끝에 문법 자체가 잘못 지정되어있는 것을 깨달았다. Int가 빠져있던 것이었다.
var comChoice: Rps = Rps(raValue: Int.random(in: 0...2))
로 수정해봤더니 정상적으로 랜덤한 컴퓨터 선택을 구현할 수 있었다.
Button Style
@IBAction func rpsButtonTapped(_ sender: UIButton) {
let title = sender.currentTitle!
switch title {
case "가위":
myChoice = Rps.scissors
case "바위":
myChoice = Rps.Rock
case "보":
myChoice = Rps.paper
default:
break
}
}
현재 버튼을 클릭했을 경우, 그 값을 sender로 받는 형식인 IBAction 이다.
title 변수에 sender.currentTitle
(현재 선택된 버튼의 타이틀) 을 넣어 switch 문을 사용해 각각의 case 를 넣어줬다.
이 경우 아무리 고민을 해봐도 코드는 정상적으로 넣은 것 같아 많은 구글링을 통해 해답을 찾았다.
바로 버튼의 style 이 default 가 아닌 plain 으로 설정되어 해당 오류가 발생했던 것이었다.
버튼의 스타일을 default 로 바꿔주니 정상적으로 구현되었다.
'◽️ Programming > T I L' 카테고리의 다른 글
프로퍼티 옵저버 (didSet , willSet) , 타입 캐스팅 (is , as) (0) | 2024.03.10 |
---|---|
델리게이트 패턴 , 텍스트 필드 (0) | 2024.03.07 |
Swift (옵셔널 체이닝, Queue , Stack , Set , Overloading) (2) | 2024.03.06 |
Swift Tuple, Any, Character / mini project (0) | 2024.03.05 |
Swift TIL ( 사운드 플레이 , 타이머 구현 ) (0) | 2024.03.04 |