核心数据计数 SwiftUI

Core Data Count SwiftUI

当我向列表中添加新提醒时,我无法同时看到计数 + 1。但是当我重新运行程序时,我看到计数是正确的。

https://vimeo.com/545025225

    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))

作为提示:我也不会使用强制展开。也许提供一个默认值而不是强制展开