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

BELATED ARTICLES

more