我有一个问题,对过滤数据的总和使用返回方法从“数量”属性,有十进制数据类型。 错误消息如下所示,并建议插入“as! 小数“,但这无济于事
无法转换类型“NSDecimalNumber?”的值? 应为参数类型“Decimal”
这是我的代码
@FetchRequest(
entity: ExpenseLog.entity(),
sortDescriptors: [
NSSortDescriptor(keyPath: \ExpenseLog.amount, ascending: false)
]
,predicate: NSPredicate(format: "(date => %@) AND (date <= %@)", DateHelper.startOfDay(day: NSDate()), DateHelper.endOfDay(day: NSDate()))
)
private var fetchSumDaily: FetchedResults<ExpenseLog>
var sumHarian: Decimal {
fetchSumDaily.reduce(0) { $0 + $1.amount}
}
这是我的实体支出日志实体
您需要考虑的金额属性是可选的。 您应该像这样实现reduce
let sum = fetchSumDaily.reduce(Decimal(0.0)) {
if let amount = $1.amount as Decimal? {
return $0 + amount
}
return $0
}