inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지

(기초-3) 가위바위보 앱 만들기 / 코드 설정하기 - 2 (기초 앱 12강)

(기초-3)가위바위보 앱 만들기 - 기초 앱 강의 12강 질문입니다!

154

HanMa_Man

작성한 질문수 1

0

image.png

Build 시 계속 위의 에러가 납니다. 그런데 Allen 님께 다운 로드 받은 파일을 해보면 문제가 없습니다. 부탁 드립니다.

ios swift

답변 2

0

앨런(Allen)

아, 네 HanMa_Man 님.

아마, UIButton 스타일 때문에 문제가 발생하실꺼예요!
(엑스코드 기본 설정이 바뀌어서요. 아마 이 내용을 제가 자주하는 질문에 넣어놓긴 했어요.)

스토리보드에서 UIButton 스타일을 Default로 바꾸시면.. currentTitle 속성을 잘 가지고 오실 수 있으실 꺼예요. 버튼 스타일의 문제로 보여요.

혹시 안되시면 다시 남겨주세요.

 

감사합니다 :)

1

HanMa_Man

감사합니다 .. 잘 됩니다 ^^

0

앨런(Allen)

네 다행이네요^^

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. HanMa_Man님.

가위바위보 앱에서 comChoice 값이 랜덤으로 바뀌지 않는 문제는 특정한 부분에서 변수가 다시 초기화되지 않는 이유 때문일 수 있습니다. 유사한 문제가 다뤄진 몇 가지 게시글을 참조해 해결 방법을 안내해드리겠습니다.

해결 방법 요약:

  1. 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")
        }
    }
    
  2. 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가 정상적으로 할당되는지 확인하고, 리셋 시 안전하게 재할당되는지 테스트해보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

수강연장부탁드려도될까요..

0

42

2

Drawing Cycle 관련 질문

0

72

1

앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?

0

95

2

델리게이트 패턴 관련 질문

0

66

2

수강 기간 연장 부탁드릴 수 있을까요?

0

61

1

활용 앱 57강 질문입니다.

0

55

1

활용 앱 30강 에러 질문입니다

0

64

2

기초앱 17강 Contraints 설정 질문입니다.

0

67

2

기초 앱 4강 Type Any -> UIButton

0

66

2

34강 유용한 앱 추천에 나오는 UIKitViewer에 대해서 질문이 있습니다

0

78

1

깃에 코드는 올려도 된다고 하셨는데

0

109

1

수강기간 연장신청 드려도 될까요?

0

82

1

수강 기간 연장 부탁드려도 될까요?

0

120

2

수강 기간 연장 신청 요청드립니다.

0

131

2

playground에서 상단 실행?아이콘 회전 관련하여...

0

136

1

활용앱53강에서 질문있습니다.

0

164

2

Project 명칭 변경방법이 궁금합니다.

0

140

1

override 에 대해서 궁금한 것이 있습니다.

0

124

2

섹션8] 코드 리팩토링 문의

0

99

1

xcode 에서 ios 버전 선택 및 시뮬레이터 관련 질문

0

566

2

수강 기간 연장 부탁드려도 될까요?

0

130

2

뷰모델의 상태변화 와 didSet

0

98

1

@Sendable 키워드

0

94

1

클로저

0

105

2