728x90
프로퍼티
클래스, 구조체 또는 열거형 등에 관련된 값
- 저장 프로퍼티: 인스턴스의 변수 또는 상수 (구조체, 클래스에만 사용 가능)
- 연산 프로퍼티: 특정 연산을 실행한 결괏값
- 타입 프로퍼티: 특정 타입에 사용되는 프로퍼티 (클래스 변수) - static
*프로퍼티 감시자: 프로퍼티 값이 변할 때 값의 변화에 따른 특정 작업 실행 (저장 프로퍼티에 적용가능, 부모 클래스로부터 상속 가능)
지연 저장 프로퍼티 (lazy var)
- 호출이 있어야 값을 초기화 한다.
- 인스턴스를 초기화 하면서 굳이 모든 저장 프로퍼티를 사용할 필요가 없을 때 사용한다.
굳이 메서드를 쓰지않고 연산 프로퍼티를 쓰는 이유
- 인스턴스 외부에서 메서드를 통해 인스턴스 내부 값에 접근하려면 메서드 두개(접근자, 설정자)를 구현해야한다. (코드 가독성 저하)
- 연산 프로퍼티를 사용하면 하나의 프로퍼티에 접근자(get)와 설정자(set)가 모두 모여있고 어떤 역할을 하는지 명확하게 표현할 수 있다.
프로퍼티 감시자
프로퍼티 값이 새로 할당될 떄마다 호출된다. (변경되는 값이 같더라도 호출됨)
- willSet: 값이 변경되기 직전에 호출
- didSet: 값이 변경된 직후에 호출
메서드
- 특정 타입에 관련된 함수
- struct 에서 사용시 mutating을 붙여 내부 값을 변경한다는걸 명시해야함
타입 메서드
- 타입 자체에 호출이 가능한 메서드
- static으로 정의하면 상속 후 메서드 재정의 불가능
- class로 정의하면 상속 후 메서드 재정의가 가능
728x90
'Swift' 카테고리의 다른 글
[DI] Initializer로 Swift 의존성 주입하기 (0) | 2020.09.03 |
---|---|
ARC - Automatic Reference Counting (0) | 2020.08.24 |
Swift: 구조체 vs 클래스 (0) | 2020.07.13 |
Swift enum - 열거형 (0) | 2020.07.09 |
Swift Set (0) | 2020.07.09 |
댓글