스위프트 4를 사용하고 있습니다. 숫자는 모두 Int입니다. 계산기 앱에 여러 자리 숫자가 표시되지 않고 연산이 항상 0을 반환합니까?
그래서 내가 계산 클래스 파일 제작 :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 = "="
}
을 그리고 내가 얻을 AC 버튼, 숫자 버튼 및 조작 버튼에 대한 UIControllerView 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 숫자를 넣어하려고 할 때마다, 그냥이 반환 한 후 항상 "resultTextField"에 0을 반환 사업자 것 1. 두 번째 문제로 대체한다는 것입니다.
어떤 계산을 테스트 했습니까? 'calculator'를 호출 할 때'operationButton'의 값은 무엇입니까? – Yannick
@ Yannick 항상 0입니다. 기능 버튼 중 하나를 누를 때마다 resultTextField가 0으로 설정됩니다. – ciklukylok
'print (operationButton)'은'calculator()'함수 내에서 무엇을 출력합니까? – Yannick