iOS/Swift

인스턴스 생성 및 소멸 5편 (함수를 사용한 프로퍼티 기본값 설정)

밤새는 탐험가89 2024. 2. 1. 12:08

 

 

함수를 사용한 프로퍼티 기본값 설정 

 

사용자 정의 연산을 통해 저장 프로퍼티 기본값을 설정하고자 한다면?

클로저나 함수 사용 가능 

 

 

※ 사용자 정의 연산?

사용자가 원하는 동작을 하는 연산자를 말함 

 

정위 연산자 

// 대표적인 예) 논리 부정 연산자
a = !a

 

중위 연산자 

// 대표적인 예) 기본적인 연산자들
a + b

 

후위 연산자 

// 대표적인 예) 옵셔널 관련 연산자
a?

 

 

 

인스턴스를 초기화할 때

함수나 클로저가 호출되면서 연산 결과값을

프로퍼티 기본값으로 제공 

반드시 클로저 또는 함수의 반환 타입 = 프로퍼티의 타입

 

 

클로저를 통한 프로퍼티 기본값 설정

class SomeClass {
    let someProperty: SomeType = {
        // 새로운 인스턴스를 생성하고 사용자 정의 연산을 통해 반환
        // 이 때 반환되는 값의 타입은 SomeType과 같은 타입일 것 
        return someValue
    } ()
}

 

클로저 뒤에 소괄호 () 붙은 이유는 클로저를 실행할 목적

클로저 뒤에 소괄호가 붙으면 실행한 결과값이 프로퍼티의 기본값이 됨 

 

 

iOS의 UI 등을 구현할 때 

UI 컴포넌트를 클래스의 프로퍼티로 구현하고, 

UI 컴포넌트의 생성과 동시에 컴포넌트의 프로퍼티를 

기본적으로 설정할 때 유용 함 

 

 

화면에 table을 구성할 때 

HomeViewController 클래스 내에 timeTableView 라는 프로퍼티를 

클로저로 구성함 

class HomeViewController: UIViewController {

    private let timeTableView: UITableView = {
        let tableView = UITableView()
        return tableView
    }()
}

 

 

timaTableView의 타입은 UITableView 이고, 

반환되는 tableView의 타입 역시 UITableView 임