'Binding <Int>'유형의 값을 예상 인수 유형 'Binding <_>'(으)로 변환 할 수 없습니다.


10

TabView다음 코드 를 사용하여 SwiftUI에서을 만들려고합니다 .

@State var selection = 0

var body: some View {
    TabView(selection: $selection) {
        DataGridPage(type: "media").tabItem {
            Image(systemName: "photo.on.rectangle")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(1)

        DataGridPage(type: "files").tabItem {
            Image(systemName: "doc.on.doc")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(2)
    }
}

하지만 오류가 발생했습니다 Cannot convert value of type 'Binding<Int>' to expected argument type 'Binding<_>'. 변수 selection가 정수이며 올바른 유형이지만 경고가 여전히 어떤 이유로 존재합니다.

답변:


9

나는 문제를 알아 냈다. 문제는 TabView클로저에 약간의 오류가 있더라도이 오류 를 보여줍니다. 따라서 코드를 작성하는 코드 TabView는 정확하지만 문제는 내가 초기화하는 방법 DataGridPage입니다. 속성 이름 typedata내부로 변경 DataGridPage했지만 여전히 type속성을 사용하고 있습니다. 나는 그것을 고쳤고 경고 표시를 중단했다.

SwiftUI는 새로운 프레임 워크이며 여전히 디버깅 측면에서 많은 개선이 이루어 졌다고 생각합니다. 나는 그것이 미래에 성숙되기를 희망하며,이 모호한 진술 대신 정확한 오류를 지적 할 수있을 것입니다.

새로운 코드는 다음과 같습니다 :

@State var selection = 0

var body: some View {
    TabView(selection: $selection) {
        DataGridPage(data: "media").tabItem {
            Image(systemName: "photo.on.rectangle")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(1)

        DataGridPage(data: "files").tabItem {
            Image(systemName: "doc.on.doc")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(2)
    }
}

그것이 비슷한 문제에 직면 한 누군가를 돕기를 바랍니다.


1
같은 문제가 있었고 지금 해결할 수 있습니다. 감사합니다
gurehbgui

내 문제는 비슷해 보였지만 내 견해 (괄호)를 구성하는 것을 기억하지 못했습니다. 따라서 DataGridPage (). tabItem {... 대신 DataGridPage.tabItem {...을 수행 한 것과 같습니다. 필자의 경우 뷰가 생성자에서 매개 변수를 사용하지 않았습니다.
dwaz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.