Swift Study


지난번에 간단한 계산기앱 코드개선을 할 때 강제언래핑한 부분을 옵셔널 바인딩으로 변경하고 아이디와 패스워드를 입력하지 않았을 때알림창(경고창)을 띄우는 코드를 추가할 것임 이건 이전 계산기앱 코드개선과 마찬가지로 하면 됨.func showAlert(message: String) { let alert = UIAlertController(title: "알림", message: message, preferredStyle: .alert) let okAction = UIAlertAction(title: "확인", style: .default) alert.addAction(okAction) present(alert, animated: t..

지난 글에서 말했듯이 이번엔 값이 입력되지 않았을 때 경고창을 띄우는 기능을 추가해 볼것임.func showAlert(message: String) { let alert = UIAlertController(title: "알림", message: message, preferredStyle: .alert) let okAction = UIAlertAction(title: "확인", style: .default) alert.addAction(okAction) present(alert, animated: true) }먼저 showAlert라는 함수를 생성해 알림을 띄우는 함수를 만드는 것이 첫번쨰임. 이걸 넣어주면 되는데 적용해 ..


옵셔널을 적용해서 코드를 개선해보겠음.let a = Int(firstOperandField.text!)! // 이 코드를 안전하게 옵셔널 바인딩으로 바꾼 코드가 아래 코드if let text = firstOperandField.text, let a = Int(text) {}아래처럼 하면 컴파일 에러가 발생하는 이유는?=> 맨위 `if let text =` 안에 `let a`와 `let b`, 그리고 개별의 `let op`가 있는데 아래 `if op`, `a`, `b`가 위의 `if`문 안에 있어야 하는데 있지 않아서 찾을 수 없다는 컴파일 에러가 발생하는 것임. 오류 해결=> 맨위 `if let text = firstOperandField.text, let a = Int(text)`코드블럭 안에 아래의 ..


아래의 코드는 수정 전 코드임. 기능은 같음. 추가로 주석으로 처리된 코드들로도 대체 가능함.import UIKitclass ViewController: UIViewController { @IBOutlet weak var number1Label: UILabel! @IBOutlet weak var number2Label: UILabel! @IBOutlet weak var number3Label: UILabel! @IBOutlet weak var number4Label: UILabel! @IBOutlet weak var number5Label: UILabel! @IBOutlet weak var number6Label: UILabel!..


import UIKitclass ViewController: UIViewController { @IBOutlet weak var weatherImageView: UIImageView! @IBOutlet weak var statusLabel: UILabel! @IBOutlet weak var temperatureLabel: UILabel! @IBOutlet weak var warmingLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // 여기에 코드를 넣어두면 화면이 표시될 때 자동으로 호출이 됨. // 원래는..


import UIKitclass ViewController: UIViewController { @IBOutlet weak var idField: UITextField! @IBOutlet weak var passwordField: UITextField! @IBAction func login(_ sender: Any) { let id = idField.text! // okok0840 let password = passwordField.text! // 1234 // 경고창// if id.isEmpty || password.isEmpty {// print("계정을 입력하세요.")// ..


계산 기능을 수행하는 간단한 계산기를 Storyboard로 만들어봤음.기본적인 UI는 이렇게 구성하고 ?로 된 곳을 누르면 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 선택할 수 있는 actionSheet기능을 넣음첫번째와 두번째 TextField에 숫자를 입력하고 사칙연산 기호를 선택한다음 계산 버튼을 누르면 기능을 수행함.import UIKitclass ViewController: UIViewController { @IBOutlet weak var firstOperandField: UITextField! @IBOutlet weak var secondOperandField: UITextField! @IBAction func selectOperator(_ sender: Any)..


import UIKitclass ViewController: UIViewController { var display = UILabel() // 결과를 표시할 라벨 var verticalStackView = UIStackView() // 버튼을 배치할 수직 스택뷰 // 버튼에 표시할 숫자 및 연산자 배열 let buttons = [["7", "8", "9", "+"], ["4", "5", "6", "-"], ["1", "2", "3", "x"], ["AC", "0", "=", "÷"]] // 뷰가 로드될 때 호출되는 메서드 override func viewDidLoad() { super.viewDidLoad() view.back..


import UIKitclass 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 l..