함수를 사용한 프로퍼티 기본값 설정
사용자 정의 연산을 통해 저장 프로퍼티 기본값을 설정하고자 한다면?
클로저나 함수 사용 가능
※ 사용자 정의 연산?
사용자가 원하는 동작을 하는 연산자를 말함
정위 연산자
// 대표적인 예) 논리 부정 연산자
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 임
'iOS > Swift' 카테고리의 다른 글
접근제어 (0) | 2024.02.05 |
---|---|
인스턴스 생성 및 소멸 6편 (인스턴스 소멸) (0) | 2024.02.02 |
인스턴스 생성 및 소멸 4편 (실패 가능한 이니셜라이저) (0) | 2024.01.31 |
인스턴스 생성 및 소멸 3편 (초기화 위임) (0) | 2024.01.31 |
인스턴스 생성 및 소멸 2편 (0) | 2024.01.30 |