24.06.25 Today I Learned
2024. 6. 25. 20:32
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var display: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
display.text = "0"
}
// 숫자 버튼 액션 메서드
@IBAction func numberTapped(_ sender: UIButton) {
if let str = display.text, let text = // let text가 operatorSymbol이 되야함
sender.titleLabel?.text {
if let num = Int(str), num == 0 {
display.text = text
} else {
display.text = str + text
}
}
}
// 연산자 버튼 액션 메서드
@IBAction func operatorTapped(_ sender: UIButton) {
// 연산자 버튼을 눌렀을 때 실행되는 액션 메서드
if let operatorSymbol = sender.titleLabel?.text, let displayText = display.text { // 옵셔널을 해제해주기 위해 let으로 변수 선언
display.text = displayText + operatorSymbol
}
}
// 등호 버튼 액션 메서드
@IBAction func equalTapped(_ sender: UIButton) {
// 등호(=) 버튼을 눌렀을 때 실행되는 액션 메서드
if let displayText = display.text {
let displayText2 = displayText.replacingOccurrences(of: "×", with: "*").replacingOccurrences(of: "÷", with: "/") // 곱하기 나누기를 with로 나온거로 바꿔줌
let expression = NSExpression(format: displayText2)
if let result = expression.expressionValue(with: nil, context: nil) as? Int {
display.text = String(result)
} else {
display.text = "Error"
}
}
}
@IBAction func deleteTapped(_ sender: UIButton) {
display.text = "0"
}
}
이제 버튼을 원형으로 바꾸고, 코드베이스UI로 구현하는 것을 목표로 잡아야겠다!
튜터님의 도움으로 breakpoint를 설정해 어디서 오류가 생기는지를 체크할 수 있게돼서 어느 부분을 고쳐야할지 알게됐는데
previousNumber와 currentNumber에 값이 ""로 설정되서 계산식이 이루어지지 않았는데 그 부분을 수정하니 결과가 잘 나왔다.
'Today I Learned > 2024' 카테고리의 다른 글
24.06.27 Today I Learned (0) | 2024.06.27 |
---|---|
24.06.26 Today I Learned (0) | 2024.06.26 |
24.06.24 Today I Learned (0) | 2024.06.24 |
24.06.21 Today I Learned (0) | 2024.06.21 |
24.06.20 Today I Learned (0) | 2024.06.20 |