[Do it!] Hello World 앱

CoCoral·2023년 8월 17일
0

Do it!

목록 보기
1/25
post-thumbnail

Do it! 스위프트로 아이폰 앱 만들기
02장 Hello World 앱 만들며 Xcode에 완벽 적응하기

📱 실행 화면 📱

⇨ 텍스트를 입력하고 Send 버튼을 클릭하면 Hello 레이블이 변경된다.


💻 Step 1. Label 추가하기

Library(+) 에서 Label 을 드래그하여 스토리보드에 3개의 레이블 배치하기
💡 Attributes inspector 에서 폰트 변경


💻 Step 2. Text Field, Button 추가하기

같은 방식으로 Text Field 와 Button 배치하기
Button 의 Title 을 Send로 변경하기


💻 Step 3. Outlet 변수 추가하기

Hello 레이블과 Text Field 를 제어하기 위해 아웃렛 변수 추가하기
💡 객체를 우클릭으로 선택하고 Assistant 영역에 드래그하면 자동 추가


💻 Step 4. Action 함수 추가하기

Button 을 클릭했을 때 이벤트를 제어하기 위해 액션 함수 추가하기
객체를 우클릭 드래그하여 Assistant 영역에 놓고 Type은 UIButton 으로 설정하기


💻 Step 5. Action 함수 코드 작성하기

@IBAction func btnSend(_ sender: UIButton) {
        lblHello.text = "Hello, " + txtName.text!
    }

Button 을 클릭하면 Hello 레이블의 텍스트가 Text Field 에 입력된 텍스트에 기반하여 변경된다.


💻 Final Step. ViewController.swift 전체 소스 코드

import UIKit

class ViewController: UIViewController {
    @IBOutlet var lblHello: UILabel!
    @IBOutlet var txtName: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    @IBAction func btnSend(_ sender: UIButton) {
        lblHello.text = "Hello, " + txtName.text!
    }
    
}

✏️ 개념 알고가기

  • strong/weak 키워드 : 메모리 회수 정책
    - strong 으로 선언된 변수를 다른 변수에서 참조하고 있을 경우 메모리 해제가 되지 않는다.
    - weak 로 선언된 변수를 다른 변수에서 참조하고 있더라도 임의로 메모리 해제가 가능하다.

  • @IBOutlet 키워드 : 객체를 소스 코드에서 참조하기 위해 사용한다.
    - 객체의 속성을 제어하는 데에 사용한다.

  • @IBAction 키워드 : 객체의 이벤트를 제어하기 위해 사용한다.
    - 특정 객체에서 원하는 이벤트가 발생했을 때 정해진 동작을 실행하기 위해 사용한다.

  • txtName.text! : 강제 언래핑
    - 값이 있을 수도, 없을 수도(nil) 있는 Optional Type 의 값에 접근하기 위해 느낌표(!) 를 붙여 언래핑을 한다.
    - 값이 없는 경우(nil)에 강제 언래핑을 시도하면 런타임 오류가 발생할 수 있으니 주의가 필요하다.
profile
언젠간 iOS 개발자가 되겠지

1개의 댓글

comment-user-thumbnail
2023년 8월 17일

좋은 정보 감사합니다

답글 달기