我正在迅速学习,我在斯坦福大学看了一个讲座,讲师在教学中为一个计算器编写代码。但在他完成代码之前,他改变了想法并用另一个代码做了同样的事情。但是我想知道如何使用他以前教过的代码来做到这一点。
不起作用的代码片段位于/* */
条评论之间。
有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
}
}
}