Type 오류 , Button Style 설정으로 인한 오류 해결

가위바위보 게임을 만들어 보는 와중에 오류 해결한 내용을 모아 정리해봤다.

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 로 바꿔주니 정상적으로 구현되었다.