Swift中的计算器代码不起作用

时间:2015-07-07 18:02:41

标签: ios swift switch-statement case

我正在迅速学习,我在斯坦福大学看了一个讲座,讲师在教学中为一个计算器编写代码。但在他完成代码之前,他改变了想法并用另一个代码做了同样的事情。但是我想知道如何使用他以前教过的代码来做到这一点。

不起作用的代码片段位于/* */条评论之间。 有4个操作,时间操作符正在工作,但其他3个没有。

提前致谢!对不起我的英语,我也在学习它。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var display: UILabel!

    var userMiddleTyping:Bool = false

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

        }

    }

    @IBAction func operate(sender: UIButton) {
        let operation = sender.currentTitle!
        if userMiddleTyping {
            enter()
        }
        switch operation {
            case "×":
                if operandStack.count >= 2 {
                displayValue = operandStack.removeLast() * operandStack.removeLast()
                    enter()

            }

     /************ NOT WORKING CODE STARTS HERE **************/
            case "÷":
                 if operandStack.count >= 2 {
                    displayValue = operandStack.removeLast() / operandStack.removeLast()
                    enter()
            }
            case "+":
               if operandStack.count >= 2 {
                    displayValue = operandStack.removeLast() + operandStack.removeLast()
                    enter()
            }
            case "−":
                if operandStack.count >= 2 {
                    displayValue = operandStack.removeLast() - operandStack.removeLast()
                    enter ()
            }
     /************ NOT WORKING CODE ENDS HERE **************/

            default: break


        }

    }


   var operandStack = Array<Double>()

    @IBAction func enter() {
        userMiddleTyping = false
        operandStack.append(displayValue)
        print("operandStack \(operandStack)")
    }


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

        }
    }
}

0 个答案:

没有答案