Я пытаюсь изменить значение внутри l oop. Значение - это логическое значение, которое я объявил как var, а не let, но я получаю сообщение об ошибке «Невозможно использовать изменяющийся член для неизменяемого значения: notat - это константа let»
Итак, я пытаюсь сделать это так, что когда я нажимаю на изображение внутри кнопки в моем списке, оно изменяет завершенное (bool) значение на true. И я хочу, чтобы при завершении == true я получал заполненную галочку
import SwiftUI
struct Notat : Identifiable
{
let id = UUID()
var cost: Int
var name: String
var completed: Bool
}
struct ContentView: View {
var modelData: [Notat] =
[Notat(cost: 50, name: "Klippe plenen", completed: false),
Notat(cost: 100, name: "Vaske speil", completed: true),
Notat(cost: 150, name: "Støvsuge huset", completed: false),
Notat(cost: 50, name: "Vaske bilen", completed: true)]
var body: some View {
List(modelData)
{
notat in HStack
{
Text("\(notat.cost)kr").frame(width: 50, height: 10, alignment: .leading)
Text(notat.name)
Button(action: /*@START_MENU_TOKEN@*/{}/*@END_MENU_TOKEN@*/)
{
Image(systemName: checkmarkSymbol(completed: notat.completed)).font(Font.system(size: 25, weight: .light))
.onTapGesture
{
test(notat: notat)
}
}.frame(maxWidth: .infinity, alignment: .trailing)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
func checkmarkSymbol(completed: Bool) -> String
{
if(completed)
{
return "checkmark.square.fill"
}else
{
return "checkmark.square"
}
}
func test(notat: Notat)
{
notat.completed.toggle() //Here is the error "Cannot use mutating member on immutable value: 'notat' is a 'let' constant"
}