过滤后的 SwiftUI CoreData 列表中的 Sum 属性

Posted

技术标签:

【中文标题】过滤后的 SwiftUI CoreData 列表中的 Sum 属性【英文标题】:Sum attribute from filtered SwiftUI CoreData list 【发布时间】:2020-06-08 09:10:56 【问题描述】:

我想从我的实体中汇总属性数量并显示它,但仅来自今天输入的数据

这是我的实体ExpenseLog Entities

这是我获取今天数据的获取请求

 @Environment(\.managedObjectContext)
 var context: NSManagedObjectContext

 @FetchRequest(
    entity: ExpenseLog.entity(),
    sortDescriptors: [
        NSSortDescriptor(keyPath: \ExpenseLog.date, ascending: false)
    ]
    ,predicate: NSPredicate(format: "(date => %@) AND (date <= %@)", DateHelper.startOfDay(day: NSDate()), DateHelper.endOfDay(day: NSDate()))
)
private var result: FetchedResults<ExpenseLog>

请帮我看看,先谢谢了

【问题讨论】:

这能回答你的问题吗? How to sum filtered Core Data in SwiftUI? 因为我的属性使用十进制数据类型:无法转换“NSDecimalNumber”类型的值?到预期的参数类型'十进制',它总是让我插入'作为!十进制'后我已经把!十进制。有什么想法吗? 【参考方案1】:

我相信您可以像这样添加变量来汇总获取的结果:

private var sum: Decimal 
    result.reduce(0)  $0 + $1.amount.decimalValue 

【讨论】:

以上是关于过滤后的 SwiftUI CoreData 列表中的 Sum 属性的主要内容,如果未能解决你的问题,请参考以下文章

浅谈CoreData海量数据(实时动态添加和删除)在SwiftUI列表中分页显示的原理及实现

如何在 SwiftUI 中汇总过滤的核心数据?

SwiftUI:如何将 CoreData 与动态过滤器相加?

浅谈SwiftUI 3.0新加入的CoreData动态FetchRequest过滤与排序特性

Sum 十进制数据类型 SwiftUI CoreData

Swiftui中CoreData关系和显示图像列表