본문 바로가기
SwiftUI

[SwiftUI] Xcode 12 타입 추론 에러

by 고고 2021. 11. 4.
the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions

안녕하세요 ◠‿◠  고고입니다.

Xcode 12에서 SwiftUI View 코드에 이 부분을 작성하다가 타입 추론 에러가 떴습니다.

보통 저 에러가 뜰 때에는 짐작가는 코드들을 주석처리하고 빌드해서 에러가 뜨게 하는 부분을 찾는 편입니다. 

그 부분을 찾으면 에러 메세지대로 표현을 쪼개주면 됩니다.

 

전 :

if !viewModel.allIssues[index].isEmpty {
            ForEach(0...viewModel.allIssues[index].count - 1, id: \.self) { issue in
                IssueBoardIssueRow(title: viewModel.allIssues[index][issue].title, assignee: viewModel.allIssues[index][issue].users)
                    .onDrag {
                        return NSItemProvider(object: viewModel.allIssues[index][issue].id as NSString)
                    }
                    .onDrop(of: ["public.text"], delegate: IssueBoardDropDelegate(stateIndex: index, issueIndex: issue, allIssues: $viewModel.allIssues))
                
                Spacer(minLength: 0)
            }
        }

후 :

IssueBoardRow(allIssues: $viewModel.allIssues, index: index)
struct IssueBoardRow: View {
    @Binding var allIssues: [[Issue]]
    let index: Int
    
    var body: some View {
        if !allIssues[index].isEmpty {
            ForEach(0...allIssues[index].count - 1, id: \.self) { issue in
                IssueBoardIssueRow(title: allIssues[index][issue].title, assignee: allIssues[index][issue].users)
                    .onDrag {
                        return NSItemProvider(object: allIssues[index][issue].id as NSString)
                    }
                    .onDrop(of: ["public.text"], delegate: IssueBoardDropDelegate(stateIndex: index, issueIndex: issue, allIssues: $allIssues))
                
                Spacer(minLength: 0)
            }
        }
    }
}

View를 하나 더 만들어서 쪼개주며 해결했습니다.

댓글