• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

ForEach에 ClosedRange

21.01.21 19:33 작성 조회수 787

0

ForEach(0...10){ }

위와 같은 모양으로 코드 작성시 아래와 같은 에러가 발생합니다.

Cannot convert value of type 'ClosedRange<Int>' to expected argument type 'Range<Int>'

0..<10과 같이 사용해야 하는 것 같습니다. 강의 내용처럼 ForEach에 ClosedRange를 쓸 수 있는게 맞나요?

답변 1

답변을 작성해보세요.

0

안녕하세요

아마 이전에는 가능했는데 지금 안된다면

SwiftUI 버전에 따라 조금씩 바뀌는 부분이라고 생각하시면 될 것 같습니다.

되는 케이스 몇개 보여드리면 정리가 될 것 같습니다.

우선 아래와 같이 id로 self를 지정하면 간단히 해결 가능합니다.

range를 사용하는 방법도 있습니다.

0...5 이렇게 하지않고 0..<5 이렇게 범위를 잡으면 되기도 합니다.

이 차이는 range와 closedRange의 차이이기도 하는데

0..<5 이렇게 마지막을 포함하지 않는 형태로 만들면 range입니다.

0...5 이렇게 마지막을 포함하면 ClosedRange입니다.

ClosedRange는 identifiable을 준수하지 않아서 \.self같이 자기자신을 id로 잡아야 한다고 선언하는 부분이 필요하게 된다고 이해하면 될 것 같습니다.