Я все время получаю сообщение об ошибке, когда пытаюсь вызвать свою функцию при нажатии кнопки. Я новичок в Swift, поэтому может быть очевидная ошибка. Вот код, который у меня должен включать ошибку. Я искал другие ответы на этот вопрос, но ничего не нашел. Я не знаю, что мне нужно сделать, чтобы вызвать изменяемую функцию.
import SwiftUI
struct ContentView2: View {
@State public var weightLifted:Int
@State public var repsPerformed:Int
@State private var percentOfReps:Double = 0.0
@State private var oneRepMax:Double = 0.0
var weightAtEachPercent:Array = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
mutating func calcMax() {
switch repsPerformed {
case 1: percentOfReps = 1.0
case 2: percentOfReps = 0.975
case 3: percentOfReps = 0.95
case 4: percentOfReps = 0.925
case 5: percentOfReps = 0.9
case 6: percentOfReps = 0.875
case 7: percentOfReps = 0.85
case 8: percentOfReps = 0.825
case 9: percentOfReps = 0.8
case 10: percentOfReps = 0.75
case 11: percentOfReps = 0.725
case 12: percentOfReps = 0.7125
case 13: percentOfReps = 0.7
case 14: percentOfReps = 0.685
case 15: percentOfReps = 0.675
default:
percentOfReps = 0.5
}
oneRepMax = Double(weightLifted) / percentOfReps
weightAtEachPercent[0] = oneRepMax
weightAtEachPercent[1] = oneRepMax * 0.975
weightAtEachPercent[2] = oneRepMax * 0.95
weightAtEachPercent[3] = oneRepMax * 0.9
weightAtEachPercent[4] = oneRepMax * 0.875
weightAtEachPercent[5] = oneRepMax * 0.825
weightAtEachPercent[6] = oneRepMax * 0.75
weightAtEachPercent[7] = oneRepMax * 0.7125
weightAtEachPercent[8] = oneRepMax * 0.675
}
var body: some View {
Button(action: {
//Place of error
//I tried using self.calcMax() as well but same error
//Error "Cannot use mutating member on immutable value: 'self' is immutable
calcMax()
}) {
Text("Calculate")
}
}
}