Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift:缺少参数错误_Swift_Swift2 - Fatal编程技术网

Swift:缺少参数错误

Swift:缺少参数错误,swift,swift2,Swift,Swift2,我在这里有一个问题,当我试图跟随斯坦福大学的第一堂课。我假设这是因为我使用的是swift 2。。。。这是最近发布的。(而课堂没有)下面我展示了我在哪里出错。在类中,计算器上的“回车”按钮有代码@IBAction func enter(){,但在我的类中,它是@IBAction func enter(发送者:UIButton){ 这是我在代码中使用按钮时出错的吗?有什么方法可以修复吗?如果我能澄清任何问题,请告诉我 import UIKit class ViewController: UIVie

我在这里有一个问题,当我试图跟随斯坦福大学的第一堂课。我假设这是因为我使用的是swift 2。。。。这是最近发布的。(而课堂没有)下面我展示了我在哪里出错。在类中,计算器上的“回车”按钮有代码
@IBAction func enter(){
,但在我的类中,它是
@IBAction func enter(发送者:UIButton){

这是我在代码中使用按钮时出错的吗?有什么方法可以修复吗?如果我能澄清任何问题,请告诉我

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
        }
    }
}
导入UIKit
类ViewController:UIViewController
{
@IBVAR显示:UILabel!
var USERISINTHEMIDLEOFTYPINGANAME:Bool=false
@iAction func appendDigit(发送方:UIButton){
让digit=sender.currentTitle!
如果用户为InthemiddleoftypingNumber{
display.text=display.text!+数字
}否则{
display.text=数字
USERISINTHEMIDLEOFTYPINGANAMER=真
}
}
@iAction func operate(发送方:UIButton){
让操作=sender.currentTitle!
如果用户为InthemiddleoftypingNumber{
enter()//这是我的错误:*在显示enter()的代码行中缺少参数参数
}
开关操作{
案例“x”:
如果操作数Stack.count>=2{
displayValue=操作数堆栈.removeLast()*操作数堆栈.removeLast()
enter()//这是我的错误:再次。。。
}
默认值:中断
}
}
变量堆栈=数组()
@iAction功能输入(发件人:UIButton){
userIsInTheMiddleOfTypingANumber=false
操作数堆栈.append(显示值)
打印(“操作数堆栈=\(操作数堆栈)”)
}
var显示值:双精度{
得到{
返回NSNumberFormatter().numberFromString(display.text!)!.doubleValue
}
设置{
display.text=“\(newValue)”
userIsInTheMiddleOfTypingANumber=false
}
}
}

enter
需要输入参数,但您没有提供任何参数。请将其替换为
enter(sender)


谢谢佐夫,这么简单的解决方法!你是最好的。:D我会接受答案(说等5分钟)别担心你会得到答案:)网站让我等了5分钟。这是你应得的。
@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
    }
}