Тип выражения неоднозначен без дополнительных проблем контекста - PullRequest
0 голосов
/ 05 февраля 2020

Я программист ладья ie swiftUI, который только начинается, и мне нужна помощь. Я получил сообщение об ошибке «Тип выражения неоднозначен без дополнительного контекста» в моем коде, но я понятия не имею, почему. Сообщение об ошибке появляется в строке шрифта и размера шрифта, введенного TextbI впоследствии. Ошибка возникает всякий раз, когда я пытаюсь объявить мои переменные как целочисленные для расчета. Когда я преобразую обратно в строку, сообщение исчезает. Почему? Вот мой код:

import SwiftUI





struct ContentView: View {
@State private var weight: Double = 0
@State private var height: Double = 0
@State private var bmi: Double = 0

var body: some View {

    VStack{

        Text("BMI Calculator")
            .font(.largeTitle)

        HStack{
            Text("Enter Height")
                .font(.custom("DIN Condensed", size: 20))


            TextField("Height (M) " , text: $height)
                .font(.custom("DIN Condensed", size: 20))
                .keyboardType(.numberPad)
        }

        HStack{
            Text("Enter Weight")
                .font(.custom("DIN Condensed", size: 20))
            TextField("Weight (KG) " , text: $weight)
                .font(.custom("DIN Condensed", size: 20))
                .keyboardType(.numberPad)
        }


        Button(action: {
            //Action of the button here
            let weightint = Int(weight.text!)
            let heightint = Int(height.text!)

            bmi = heightint / (weightint * weightint)
            print("testting")


        }) {
            Text("CALCULATE")
                .font(.custom("DIN Condensed", size: 60))
                .background(Color.red)
        }
    }

        //output

}
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

1 Ответ

0 голосов
/ 05 февраля 2020

попробуйте это:

вы допустили несколько ошибок в отношении переменных:

1) текстовое поле ожидает String, а не double как переменную.

2) некоторая self. где также отсутствует

3) Типп: к сожалению, сообщения об ошибках в SwiftUI не всегда указывают на вашу реальную проблему - попробуйте закомментировать ваш «новый» код, пока он снова не будет успешным (вы можете скомпилировать его без ошибок), затем пошагово раскомментируйте новые строки и наблюдайте, когда ваши ошибки случаются ...

struct ContentView: View {
    @State private var weight: Double = 0
    @State private var height: Double = 0
    @State private var bmi: Double = 0

    @State private var textHeight : String = ""
    @State private var textWeight : String = ""

    var body: some View {

        VStack{

            Text("BMI Calculator")
                .font(.largeTitle)

            HStack{
                Text("Enter Height")
                    .font(.custom("DIN Condensed", size: 20))


                TextField("Height (M) " , text:$textHeight)
                    .font(.custom("DIN Condensed", size: 20))
                    .keyboardType(.numberPad)
            }

            HStack{
                Text("Enter Weight")
                    .font(.custom("DIN Condensed", size: 20))
                TextField("Weight (KG) " , text: $textWeight)
                    .font(.custom("DIN Condensed", size: 20))
                    .keyboardType(.numberPad)
            }


            Button(action: {
                //Action of the button here
                let weightint = self.weight
                let heightint = self.height

                self.bmi = heightint / (weightint * weightint)
                print("testting")


            }) {
                Text("CALCULATE")
                    .font(.custom("DIN Condensed", size: 60))
                    .background(Color.red)
            }
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...