coredata int32在文本中没有显示?



我使用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

最新更新