【发布时间】:2017-11-09 10:36:38
【问题描述】:
我使用的是 Swift 4,数字都在 Int 中。
于是我做了一个计算类文件:
import Foundation
import UIKit
class Calculation {
var result = Int()
var operationButton = String()
var currentNumber = Int()
func calculator() {
switch operationButton {
case "+":
result = result + currentNumber
case "-":
result = result - currentNumber
case "*":
result = result * currentNumber
case "/":
result = result / currentNumber
case "=":
result = currentNumber
default:
break
}
}
func textClear() {
result = 0
currentNumber = 0
operationButton = "="
}
然后我在 UIControllerView 中为 AC 按钮、数字按钮和操作按钮制作了 3 个函数,以直接从按钮标题中获取“0-9”和“-,+,*,/,="。
class ViewController: UIViewController {
@IBOutlet weak var resultTextField: UITextField!
var calculation = Calculation()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
calculation.operationButton = "="
resultTextField.text = "\(calculation.result)"
}
@IBAction func allClearButtonPressed(_ sender: UIButton) {
calculation.textClear()
resultTextField.text = "\(calculation.result)"
}
@IBAction func operationButtonPressed(_ sender: UIButton) {
calculation.operationButton = sender.titleLabel!.text as String!
calculation.operationButton = sender.titleLabel!.text!
calculation.calculator()
resultTextField.text = "\(calculation.result)"
}
@IBAction func numberButtonPressed(_ sender: UIButton) {
calculation.currentNumber = Int((sender.titleLabel?.text)!)!
let numberInput = String(calculation.currentNumber)
resultTextField.text = numberInput
}
}
第一个问题是,每当我尝试输入一个数字(例如 21)时,它只会返回 2,然后替换为 1。第二个问题是运算符总是将零返回到“resultTextField”。
【问题讨论】:
-
你测试过什么计算?调用
calculator时operationButton的值是多少? -
@Yannick 它始终为零,每当我按下任何功能按钮时,它都会将 resultTextField 设置为零。
-
print(operationButton)在calculator()函数中打印什么? -
@Yannick 它打印操作字符串,例如“+”或“*”,当每个在模拟器中被按下时。
标签: swift xcode calculator operations