강의로 돌아가기
-

런타임 에러가 나타납니다.

var targetMoneyString = "
for i in 0..<4 {
targetMoneyString += sourceMoney.valueInCurrency(Currency.init(rawValue: i)!)
targetMoneyString +=
\r\n"
}

    targetMoneyLabel.text = targetMoneyString

이 부분에서 저기 targetMoneyString += sourceMone~ 부분에서 런타임 에러가 나타납니다. 상황은 애플리케이션을 실행하고 텍스트 박스에 10을 넣고 Convert를 누르는 순간입니다.
왜인지는 모르겠는데 디버그 창(watch)을 보면 값은 온전하게 들어가 있었습니다.
그리고 잘 따라하다가 Currency.init()을 직접 넣으시길래 함수 선언부에서 _ currency:Currency로 바꿨습니다. 애초에 바꾸지 않으면 syntax error를 내뱉더군요..

컴파일 에러라면 소스코드를 보면서 수정할 수 있겠으나 이 런타임 에러의 원인을 찾지 못하겠습니다..

1 개의 답변
-

case가 0, 1, 2, 3의 값을 가지는데 4를 참조하려다가 크래시가 나는 것입니다.
그리고 아마도 실수 같지만, 문법적으로 틀렸기 때문에 for i in 0...3 으로 바꾸어야 합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.