过滤后的 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:如何将 CoreData 与动态过滤器相加?