二元运算符'+'不能应用于两个'NSNumber'操作数 - swift 3
帮助。我只是转换为SWIFT 3和我得到的错误,当我尝试添加两个NSNumbers在一起,即:二元运算符'+'不能应用于两个'NSNumber'操作数 - swift 3
var foodPrice: NSNumber!
var priceSum: NSNumber!
foodPrice = 6.79
priceSum = 11.89
var totalSum = NSNumber(foodPrice + priceSum) // <-- error here
OR
var totalSum = (foodPrice + priceSum) as NSNumber // <-- still error here
不要紧,我怎么改totalSum我无法脱身这个错误。请帮忙。这是我的官方SOS。在这里茫然而困惑。我如何完成这项工作?
var foodPrice: NSNumber!
var priceSum: NSNumber!
foodPrice = 6.79
priceSum = 11.89
var totalSum = NSNumber(double: foodPrice.doubleValue + priceSum.doubleValue)
试试这个..!
尝试
var totalSum = NSNumber(value: foodPrice.doubleValue + priceSum.doubleValue)
为什么不写自己的+
覆盖为NSNumber
?
func + (lhs: NSNumber, rhs: NSNumber) -> NSNumber {
return NSNumber(value: lhs.floatValue + rhs.floatValue)
}
var foodPrice: NSNumber = 6.79
var priceSum: NSNumber = 11.89
var totalSum = foodPrice + priceSum // 18.68
我在这里使用浮动,但你可以使用任何你需要的类型。
我看到的问题是:什么是*“您需要的任何类型”*?应用程序可能会在不同的地方使用包含(例如)Float,Double和(U)Int64的NSNumbers。无论您在''+'运算符中使用哪种表示形式,它在任何情况下都无法正常工作。 –
@MartinR你的权利,这不是一个真正的可重用的方法。任何建议如何改善此功能(如果有的话)?或者只是逐个处理每个NSNumber。 – JAL
我没有一个好主意。可能是后者。 –
没有带'NSNumber'操作数的'+'操作符。 –