swiftui - coredata int32 在文本中没有显示?
问题描述
我使用核心数据来存储一些东西,并将其声明为
@Environment(\.managedObjectContext) private var viewContext
@StateObject var exeplan: Explan
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来代替它,它已经改变了。</p>
我的意思是它是一个闭包,我怎样才能传递一个新数组来替换它?另一种方式,它解决了这个问题?
解决方案
尝试通过添加“手动”状态更新 Explan
exeplan.objectWillChange.send()
就在之前
item.duration -= 15
推荐阅读
- c++ - 反向打印任何向量的通用函数,编译器错误
- php - 如何在 laravel 的下拉选项字段中显示值?
- java - 链表从java中删除重复节点
- openssl - 尝试为 Windows 7 创建 openssl 但遇到问题:
- powershell - Spring Boot Actuator 2.0.0 ShutDown 端点在使用 POST 请求调用时返回错误 415
- java - java - 如何在没有系统属性的Java URL连接中设置http.nonProxyHosts?
- python - 如何获取字典键和值
- gradle - gradle 的新插件 dsl 语法
- google-chrome - 如何使用代码或 API 从 chrome 开发人员工具中自动获取 fps 仪表值?
- qt - fileDialogDCM.fileUrls.count 给出“未定义”(QML)