티스토리 뷰

728x90
반응형

예전에 진행됐던 프로젝트를 다시 살리던 중, 빌드가 굉장히 오래걸리며 (빌드하는데만 3~40분 소요된거 같다..)
결국 에러가나서 하루를 꼬빡 날렸던 적이 있다..
(내 맥북 배터리만 엄청나게 녹아내렸다😭)

The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions

swiftUI로 작성된 프로젝트에서 해당 오류가 발생한다...
구글에 검색하면 보통 "타입추론 오류"이며, 너무 과한 타입추론을 중간에 한번 나눠줌에따라 해결하라는 글이 대다수이다.

근데, 난 그렇게 해결할 수가 없었다

import SwiftUI

struct TestView: View {

    var body: some View { // << 이 곳에서 빨간줄이 생긴다
        // ...
    }
}

body부분에 빨간줄이 생기기 때문에... 위와같은 방법으로는 해결할 수가 없었다
그래서 디버깅의 정석대로.. 한줄한줄 주석을 지우며 일일히 빌드해본 결과

ScrollView() {
    LazyVStack() {
        ForEach(Array(data.enumerated()), id: \.offset) { (index, item) in
            TestList(data: data[index])
                .padding(10)
                .id(index) // << 이 부분이 문제였다

            // ...
        }
    }
}

마땅히 해결 방법이 떠오르지 않았고, 혹시 저 indexInt형으로 들어가지 않는건가? 하여 캐스팅 해줬더니... 된다...(?????)

.id(Int(index))

더도말고 덜도말고 그냥 이렇게만 해줬는데 잘 돌아간다..
아니 왜 그런거지?? option키 눌러서 index의 타입을 확인해보면 분명 Int형이라고 나오는데...
(혹시 아시는 분이 계신다면 꼭 공유부탁드립니다...😭)

728x90
반응형

'iOS' 카테고리의 다른 글

Auto Layout - Anatomy of a Constraint  (0) 2021.06.19
Table View  (0) 2021.05.23
URLSession API  (0) 2021.01.28
GCD  (0) 2021.01.27
Concurrency  (0) 2021.01.27