Вы указали свою переменную веса следующим образом:
@State var weight = ""
Присвоив пустую строку (""
), вы объявили вес в виде строки.
Чтобы умножить это значение на целое число, вам необходимо преобразовать строковое значение в целое число.
Вам также потребуется обработать случай, когда пользователь может вводить нечисловые значения в ваш текстinput.
Вместо этого сохраните значение веса в виде целого числа.
Вы можете позаботиться об этом, создав привязку, которая используется, когда пользователь вводит значение в текстовое поле. Например:
@State var weight = 0
var body: some View {
let weightProxy = Binding<String>(
get: { String(format: "%.02f", Int(self.weight)) },
set: {
if let value = NumberFormatter().number(from: $0) {
self.weight = value.intValue
}
}
)
Затем вы привязали бы свой TextField к weightProxy:
TextField( "Enter your weight", text:$weightProxy)
В лучшем случае будет иметь TextField, который принимает только числа. Это немного больше работы, но может быть хорошим проектом для следующего!