Hi yoahn 개발블로그

[Swift] #1 스위프트 코드 기본 설명 본문

프로그래밍 언어/swift

[Swift] #1 스위프트 코드 기본 설명

hi._.0seon 2020. 12. 15. 18:42
반응형

 

//
//  ViewController.swift
//  Scene-Trans02
//
//  Created by ooo on 2020/12/15.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet var uiTitle: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


    @IBAction func sayHello(_ sender: Any) {
        self.uiTitle.text = "Hello, World!"

    }
}

1. import UIKit

- UIKit

앱 화면을 구성하는 데에 필요한 모든 객체들이 포함된 프레임워크

2. class ViewController: UIViewController

- UIViewController 클래스 상속받아 ViewController라는 새로운 클래스를 정의

UIViewController 클래스는 UIKit 프레임워크에 정의되어 있는 클래스로, 기본 뷰 컨트롤러를 구현하는 핵심 클래스

뷰 컨트롤러를 정의하려면 이 클래스를 상속받거나 이 클래스를 상속한 다른 클래스를 상속받아야 한다.

3. override func viewDidLoad()

- 부모클래스에 정의되어 있는 메소드

- 뷰의 로딩이 완료되었을 때 시스템에 의해 자동으로 호출된다. 일반적으로 리소스를 초기화하거나 초기 화면을 구성하는 등 처음 한 번만 실행해야 하는 초기화 코드는 대부분 이 메소드 내부에 작성

부모 클래스에 정의되어있는 메소드를 재정의 하는 것 : override

4. [레이블 연결] @IBOutlet var uiTitle: UILabel!

- 인터페이스 빌더의 레이블을 스위프트 클래스가 참조할 수 있도록 연결된 멤버 변수로, 아울렛 변수라고 부른다.

- @IBOutlet 키워드: 인터페이스 빌더에 관련된 속성이라는 것을 알려주는 어노테이션

- uiTitle 변수: 뷰 컨트롤러에 추가했던 레이블과 직접적으로 연결되어 있음. 이 변수의 속성을 변경하면 화면상에 있는 레이블에도 그대로 반영된다.

5. [버튼 연결] @IBAction func sayHello(_ sender: Any) {

버튼 연결은 설정용 팝업 창에서 Connection 항목의 값을 Action으로 설정해야 한다. 그래야 터치했을 때 발생하는 이벤트를 연결하는 것이기 때문이다.

- Connection 항목이 Action 이기 때문에 추가되는 코드가 메소드의 형태이다.

6. 앱 시작 화면

프로젝트 설정 부분에서 App Icons and Launch images 부분에 시작 화면 파일의 이름이 입력되어 있다. .storyboard 확장자가 빠져있는 형태) 

6-1. AppDelegate.swift

- AppDelegate 클래스

 이 클래스는 앱 전체의 실행 흐름을 컨트롤하는 객체로서 앱이 처음 실행되거나 종료될 때, 혹은 백그라운드 상태로 들어가거나 포그라운드 상태로 활성화될 때 호출되는 메소드들로 구성되어있다.

 

- application(_:didFinishLaunchingWithOptions:)

: 앱이 처음에 실행될 때, 필요한 시스템적 처리를 모두 끝내고 메인 화면을 표시하기 직전에 호출된다.

(앱이 맨 처음 실행될 때 시작 화면이 모바일 기기의 스크린에 표시된 후 이 메소드가 호출되고, 이 메소드 내부에 작성된 내용이 모두 실행되고 나면 Main.storyboard 파일의 화면이 스크린에 표시)

 

-> application(_ application: UIApplication,,)

"_" 가 있는 매개변수는 함수 호출 시 인자 레이블을 생략 가능하다.

 

- sleep(_:)

프로세스의 실행을 지연할 초(Second) 단위 값

반응형
Comments