2016-10-04 80 views
-1

幫助。我只是轉換爲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。在這裏茫然而困惑。我如何完成這項工作?

+4

沒有帶'NSNumber'操作數的'+'操作符。 –

回答

0
var foodPrice: NSNumber! 
var priceSum: NSNumber! 
foodPrice = 6.79 
priceSum = 11.89 
var totalSum = NSNumber(double: foodPrice.doubleValue + priceSum.doubleValue) 

試試這個..!

0

嘗試

var totalSum = NSNumber(value: foodPrice.doubleValue + priceSum.doubleValue) 
1

爲什麼不寫自己的+覆蓋爲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 

我在這裏使用浮動,但你可以使用任何你需要的類型。

+1

我看到的問題是:什麼是*「您需要的任何類型」*?應用程序可能會在不同的地方使用包含(例如)Float,Double和(U)Int64的NSNumbers。無論您在''+'運算符中使用哪種表示形式,它在任何情況下都無法正常工作。 –

+0

@MartinR你的權利,這不是一個真正的可重用的方法。任何建議如何改善此功能(如果有的話)?或者只是逐個處理每個NSNumber。 – JAL

+0

我沒有一個好主意。可能是後者。 –

相關問題