core-data - 核心数据计数 SwiftUI
问题描述
当我在列表中添加新提醒时,我无法同时看到计数 + 1。但是当我重新运行程序时,我发现计数是正确的。
struct ListCell: View {
var list : CDListModel
@State var count = 0
@State var isSelected: Bool = false
var body: some View {
HStack{
Color(list.color ?? "")
.frame(width: 30, height: 30, alignment: .center)
.cornerRadius(15)
Text(list.text ?? "")
.foregroundColor(.black)
.font(.system(size: 20, weight: .regular, design: .rounded))
Spacer()
Text(String(count))
.foregroundColor(.gray)
.onAppear{
DispatchQueue.main.async {
self.count = list.reminders!.count
}
}
}
}
}
解决方案
如果 CDListModel 是 CoreData 实体,那么您只需添加以下内容:
@ObservedObject var list : CDListModel
还要删除计数的状态。
然后像这样显示计数:
Text(String(list.reminders!.count))
作为提示:我也不会使用强制展开。也许提供一个默认值而不是强制展开
推荐阅读
- python - numpy.gradient 在使用具有常量值的可变参数数组时返回 nan 值
- php - 如何保护上传文件?
- python - scikit learn one hot encoding 列有问题
- powerbi - 如何计算 DAX 中的每日人口并能够按列对其进行切片
- git - 升级到 MacOS Mohave 10.14.4 (18E226) 后无法 npm 安装或使用 git
- javascript - 引导日期时间选择器动态默认日期不起作用
- java - 更改缓存后如何返回当前数据列表?
- java - 如何从另一个文件夹执行jar文件
- c# - 如何使用实体框架将两个实体映射到一个数据库表(代码优先到现有数据库)?
- php - 类似功能不适用于搜索