2016-01-27 68 views
-1

我正在製作一個計算器,並決定添加一些比標準4更多的操作。在試圖實現罪和COS時,我遇到了以下問題。如何在一個快捷的計算器中實現sin()?

@IBAction func evaluate(sender: AnyObject) { 
    secondNumber = Int(Screen.text!)! 
    if operation == "+" { 
     result = firstNumber + secondNumber 
    } else if operation == "-" { 
     result = firstNumber - secondNumber 
    } else if operation == "X" { 
     result = firstNumber * secondNumber 
    } else if operation == "/" { 
     result = firstNumber/secondNumber 
    } else if operation == "%" { 
     result = firstNumber % secondNumber 
    } else if operation == "^" { 
     result = firstNumber^secondNumber 
    } else if operation == "Sin" { 
     result = sin(degToRad(Double(firstNumber))) 
    } 

其中degToRad被定義爲

func degToRad(degrees: Double) -> Double { 
// M_PI is defined in Darwin.C.math 
return M_PI * 2.0 * degrees/360.0 

}

我上線罪下面的錯誤。

「曖昧參考成員‘罪’,」

這是爲什麼發生的歷史,如何去使用罪嗎?我已經導入了達爾文,所以我不認爲這是問題,我對swift仍然很陌生,所以我確定我正在做一些簡單的不正確的事情,但是任何幫助都會很感激。

+2

你嘗試self.sin? (這可能是一個範圍問題) – DeyaEldeen

+0

你的結果如何聲明? – user3441734

回答

1

如果像@zazu表明,這是一個範圍的問題,你能澄清與作用域:

result = Foundation.sin(...) 
+0

'Darwin.sin'也有效,但'Foundation.sin'可以工作,不管平臺如何,其中'Darwin.sin'可能不適用於非達爾文平臺,即Linux和Windows。 –

+0

但是,我們還需要知道'結果'是如何聲明的。不幸的是,OP已經掛斷了電話...... – matt