• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

tickCount에러 문의

23.01.12 18:10 작성 조회수 255

0

스크린샷 2023-01-12 오후 6.06.55.png tickCount부분에서

Non-constant range: argument must be an integer literal 와 같은 에러가 뜹니다.

 

잘몰라서..

ForEach(0..<tickCount,id: \.self) 로 변경했더니 에러가 사라지는데 이렇게 해도 되는걸까요?

답변 1

답변을 작성해보세요.

1

안녕하세요

 

ForEach를 사용할 때 constant range 즉 아래처럼 범위를 직접 기입하는 고정된 상태라면 워닝이 안나오고 id도 필요 없습니다.

image

 

하지만 아래처럼 작성한 스타일처럼 범위에 변수등이 들어가 있으면 이건 dynamic range로 하나하나의 요소에 id가 필요한 상황이 됩니다.

ForEach(0..<tickCount)

 이 id를 기준으로 변경등이 이루어지기 때문입니다.

이건 ForEach의 스펙이라고 보시면 됩니다.

그러니 변경하신 부분은 올바르게 수정했다고 생각하시면 됩니다.

 

 

해당 내용은 아래처럼 ForEach에다가 command + control + 마우스클릭 해서 init을 들어가 보시면 제가 설명한 내용이 나와있으니 참고하시면 좋을 것 같습니다.

image

 

감사합니다 ^^