-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
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를 쓸 수 있는게 맞나요?
답변을 작성해보세요.
0
iOS Developer - 이정
지식공유자2021.01.24
안녕하세요
아마 이전에는 가능했는데 지금 안된다면
SwiftUI 버전에 따라 조금씩 바뀌는 부분이라고 생각하시면 될 것 같습니다.
되는 케이스 몇개 보여드리면 정리가 될 것 같습니다.
우선 아래와 같이 id로 self를 지정하면 간단히 해결 가능합니다.
range를 사용하는 방법도 있습니다.
0...5 이렇게 하지않고 0..<5 이렇게 범위를 잡으면 되기도 합니다.
이 차이는 range와 closedRange의 차이이기도 하는데
0..<5 이렇게 마지막을 포함하지 않는 형태로 만들면 range입니다.
0...5 이렇게 마지막을 포함하면 ClosedRange입니다.
ClosedRange는 identifiable을 준수하지 않아서 \.self같이 자기자신을 id로 잡아야 한다고 선언하는 부분이 필요하게 된다고 이해하면 될 것 같습니다.
답변 1