我使用core data来存储一些东西,并将其声明为
@Environment(.managedObjectContext) private var viewContext
@StateObject var exeplan: Explan
解释是一个实体
ForEach(Array(exeplan.exercisearray.enumerated()), id: .element) { (index,item) in
Button(action: {
item.duration -= 15
do {
try viewContext.save()
} catch {} }, label: {
Image(systemName: "minus.circle.fill")})
Text("(item.duration)")
Button(action: {item.duration += 15
do {
try viewContext.save()
} catch {})
text ("(item.duration)")没有立即更新,它是一个Int32样式,
但是当我打印它时,num是一个新的。当我导航回来
,我用另一个int32来替换它,它已经改变了。
我的意思是它是一个闭包,我怎么能传递一个新的数组来代替它?换句话说,它解决了这个问题?
尝试"手动";状态更新的解释,通过添加
exeplan.objectWillChange.send()
之前item.duration -= 15