Я использую 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 = "="
}
И затем я сделал 3 функции в UIControllerView для кнопки AC, кнопки чисел и кнопки операций, чтобы получить «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».
operationButton
при вызовеcalculator
? - person Yannick   schedule 09.11.2017print(operationButton)
печатает внутри функцииcalculator()
? - person Yannick   schedule 09.11.2017