私はスイフト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 = "="
}
をそして私は、「0-9」を取得するためのボタンACボタン、数字ボタン、および操作のためUIControllerViewに3つの機能を作り、「 - 、+ 、*、/、= "をボタンのタイトルから直接入力します。
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を返し、その後、第二の問題は、常に「resultTextField」にゼロを返す演算子だろう1で置き換えることです。
どのような計算をテストしましたか? 'calculator'を呼び出すときの' operationButton'の値は何ですか? – Yannick
@ Yannick関数のボタンのどれかを押すたびにresultTextFieldを0に設定すると常にゼロになります。 – ciklukylok
'print(operationButton)'は 'calculator()'関数の中で何を出力しますか? – Yannick