尝试减少 Decimal 属性给出:表达式类型不明确,没有更多上下文

Posted

技术标签:

【中文标题】尝试减少 Decimal 属性给出:表达式类型不明确,没有更多上下文【英文标题】:Trying to reduce Decimal property gives: Type of expression is ambiguous without more context 【发布时间】:2018-03-04 19:27:22 【问题描述】:

我有一个名为 Transaction 的核心数据实体,其属性为 value,类型为 Decimal

我正在尝试减少事务数组,以总结 value 属性:

private var transactions = [Transaction]() 
    didSet 
        navigationItem.title = transactions.reduce(0.0)  $0.decimalNumberByAdding($1.value) 
    

但这会产生编译器错误:Type of expression is ambiguous without more context

如何通过对 Decimal 属性求和来减少对象数组?

【问题讨论】:

【参考方案1】:

发现尽管我的数据模型上的类型设置为Decimal,但实际上类型是NSDecimalNumber

所以它必须是:

let total = transactions.reduce(NSDecimalNumber(decimal: 0))  $0.adding($1.value ?? NSDecimalNumber(decimal: 0)) 
navigationItem.title = "$ \(total)"

【讨论】:

以上是关于尝试减少 Decimal 属性给出:表达式类型不明确,没有更多上下文的主要内容,如果未能解决你的问题,请参考以下文章