2015-10-02 182 views
0

當試圖按照第一個斯坦福講座時,我在這裏有一個問題。我假設這是因爲我使用了剛剛發佈的swift 2 .... (而且課堂不是)在下面我顯示我得到錯誤的地方。在這個類中,計算器上的「輸入」按鈕的代碼爲@IBAction func enter() {,但在我的代碼中是@IBAction func enter(sender: UIButton) {Swift:缺少參數錯誤

這是我在將按鈕放入代碼時做錯了什麼嗎?任何方法來解決?讓我知道我是否可以澄清任何事情。

import UIKit 

class ViewController: UIViewController 
{ 

    @IBOutlet var display: UILabel! 

    var userIsInTheMiddleOfTypingANumber: Bool = false 

    @IBAction func appendDigit(sender: UIButton) { 
     let digit = sender.currentTitle! 
     if userIsInTheMiddleOfTypingANumber { 
      display.text = display.text! + digit 
     } else { 
      display.text = digit 
      userIsInTheMiddleOfTypingANumber = true 
     } 
    } 

    @IBAction func operate(sender: UIButton) { 
     let operation = sender.currentTitle! 
     if userIsInTheMiddleOfTypingANumber { 
      enter() // Here is my error: *Missing Argument for parameter on the line of code that says enter() 
     } 
     switch operation { 
      case "x": 
       if operandStack.count >= 2 { 
        displayValue = operandStack.removeLast() * operandStack.removeLast() 
        enter() // Here is my error: Again... 
       } 

      default: break 
     } 
    } 

    var operandStack = Array<Double>() 



    @IBAction func enter(sender: UIButton) { 
     userIsInTheMiddleOfTypingANumber = false 
     operandStack.append(displayValue) 
     print("operandStack = \(operandStack)") 
    } 

    var displayValue: Double { 
     get { 
      return NSNumberFormatter().numberFromString(display.text!)!.doubleValue 
     } 
     set { 
      display.text = "\(newValue)" 
      userIsInTheMiddleOfTypingANumber = false 
     } 
    } 
} 

回答

0

enter需要一個輸入參數,但您沒有提供任何輸入參數。替換爲enter(sender)

@IBAction func operate(sender: UIButton) { 
    let operation = sender.currentTitle! 
    if userIsInTheMiddleOfTypingANumber { 
     enter(sender) 
    } 

    switch operation { 
     case "x": 
      if operandStack.count >= 2 { 
       displayValue = operandStack.removeLast() * operandStack.removeLast() 
       enter(sender) 
      } 

     default: break 
    } 
} 
+0

謝謝Zoff,這樣一個簡單的修復!你是最棒的。 :D我接受答案(說等5分鐘) –

+0

非常感謝回答標記! –

+0

不要擔心你會得到它:)網站讓我等了五分鐘。你贏了。 –