2015-10-02 55 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

不要担心你会得到它:)网站让我等了五分钟。你赢了。 –