가끔 xcode로 swiftui를 개발, 컴파일할 때 다음과 같은 에러가 나면서 컴파일 실패가 나는 경우가 있습니다.
오류 예:
The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
Swiftui failed to produce diagnostic for expression; please submit a bug report
Failed to produce diagnostic for expression; please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project
보통 xcode의 컴파일러는 에러가 난 위치를 정확히 알려주고 때론 어떻게 고쳐야 하는지 가이드를 줄 때도 있습니다. 하지만 위의 에러는 보통 View의 body에 빨간 줄이 생기며 알기 힘든 메시지만 보여주며 컴파일 실패가 됩니다.
import SwiftUI struct TestView: View { var body: some View { // <-- 이곳에 빨간 줄이 생기며 위에 에러가 남 ... } } |
구글링을 해도 chat-gpt에 물어봐도 딱히 원하는 답을 찾기 어려웠습니다. 그런데 정말 의외로 간단한 방법으로 해결을 해 공유합니다.
저의 경우는 대부분 오타가 그 원인이었습니다. 그리고 공통적으로 'ForEach' 안에서 발생했습니다.
ForEach(Array(zip(model.labels.indices, $model.labels)), id: \.0) { index, item in VStack { HStack { Text("\(index + 1):") TextField("label을 입력하세요", text: item.label) ... |
즉, 위의 예제에서 item의 속성 값에 오타가 있으면 주로 정확한 item의 속성 값에 빨간 줄이 생기는 것이 아니라 엉뚱한 곳에 빨간 줄이 생기고 엉뚱한 에러 메시지를 보여 줍니다.
따라서 ForEach를 사용할 때 주의가 필요해 보입니다.
'다시 개발자' 카테고리의 다른 글
apple in app 결제를 위한 유료 앱 계약 (102) | 2024.08.10 |
---|---|
Apple Watch 개발자 모드 활성화 설정 (40) | 2024.01.19 |
AWS 고정 IP 할당 (81) | 2023.12.11 |
Swiftui로 현재 위치를 지도에 표시하는 방법 (77) | 2023.10.10 |
MacBook, networkd_settings_read_from_file Sandbox ~ error 처리 (117) | 2023.09.25 |
댓글