학교 공부/iOS 프로그래밍

실습 2-7 (교재 P.61) _____ 교재: 스위프트로 아이폰 앱 만들기 6판

_빌런 2022. 4. 4. 15:14

[ 코드에 들어가기 전에 ]

  • 최신 MacOS는 Monterey 12.3.1이지만, Catalina 버전으로 실행한 결과이다.
  • 최신 Xcode는 13.3이지만, Catalina에 맞는 9.4.1 버전으로 실행한 결과이다.
import UIKit

class ViewController: UIViewController {
    @IBOutlet var lblHello: UILabel!
    @IBOutlet var txtname: UITextField!
    @IBOutlet var btnPush: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from nib.
    }
    
    @IBAction func btnPush(_ sender: UIButton) {
        lblHello.text = "Welcome, " + txtName.text!
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

@IBOutlet

 

IBOutlet은 값에 접근하기위한 변수 선언이다. 선언해주는 값이기 때문에 DidLoad 이전에 선언한다.

이때 @는 어떤 속성을 가지고 있다고 하는 예약어이다. 

 

@IBAction

 

IBAction은 Event가 일어난 경우 호출되는 Action을 정의해둔 것이다.

IB는 Interface Builder의 준말이다.

 

:UI~

 

어떤 UI를 가리킬 것인가를 지정해준다. :UILabel이라면 Label UI를 가리키라는 것이고,

:UIButton이라면 Button UI를 가리키라는 의미이다.

 

! / ?

 

Optional 항목이다. 말그대로 붙여도 되고, 붙이지 않아도 되는 항목이다.

!는 Nil 값이 절대 들어갈 리 없다고 확신하는 의미이고, ?는 Nil이 포함될 수도 있다는 의미이다.

 

viewDidLoad()

 

View가 로딩이 되고 난 뒤에 일어나는 일을 정리한 함수이다. 그러니까 앱이 실행되고 나서 실행될 함수를 적는 것이다.

로딩이 된 후에 실행을 하는 거지만, View 입장에서는 자기가 로딩이 된 것이 먼저 일어났으므로 DidLoad이다.

 

실습 2-7 실행 결과