반응형
카테고리 | 게시글 작성 날짜 | 게시글 최근 수정 날짜 | 작성자 |
iOS | 2022.03.03. 01:19 | 2022.03.03. 01:19 | Dev.Yang |
Swift 언어에서 클래스 (Class) 초기화 과정은 Two-Phase Initialization 과정을 통하여 초기화 작업을 수행합니다. Two-Phase Initialization 초기화 과정은 아래와 같습니다.
- 첫번째 단계는 클래스 (Class) 내에 Properties들에 대하여 초기 값을 할당하여 초기화 작업을 수행합니다.
- 두번째 단계는 첫 번째 단계에서 초기 값을 할당 한 Properties에 대한 초기 상태가 결정이 되면 클래스 (Class)에 대한 새로운 인스턴스를 사용하기 전에 저장 된 Properties에 대하여 Customize 초기화 작업을 수행할 수 있습니다.
또한, Swift Two-Phase Initialization 과정은 Objective-C 언어에서의 초기화와 유사합니다. 다른점은 첫 단계인 클래스 (Class) 정의 된 Properties에 대하여 초기화 시 Objective-C 초기화는 0 또는 NULL 값만을 할당 할 수 있는 반면에 Swift는 개발자가 유연하게 초기 값을 지정할 수 있습니다.
Two-Phase Initialization 과정에 대한 소스코드는 아래와 같습니다.
class Shape {
var numberOfSides: Int = 0
var name: String
init(name: String) {
self.name = name
}
}
class Square: Shape {
var sideLength: Double = 0.0
init(sideLength: Double, name: String) {
self.sideLength = sideLength /// 1. 첫번째로 자식 클래스의 속성에 값 할당
super.init(name: name) /// 2. 두번째로 부모 클래스의 이니셜라이저 호출
numberOfSides = 4 /// 3. 세번째로 부모 클래스가 정의한 속성 값 변경
}
}
🚀 REFERENCE
반응형
'# 애플 [Apple] > iOS' 카테고리의 다른 글
[iOS] Swift 초기화 (Initialization) (0) | 2022.02.24 |
---|---|
[iOS] UIKit, AppKit, SwiftUI 구성 요소 비교 (Difference UIKit, AppKit and SwiftUI Component) (0) | 2022.02.16 |
[iOS] Xcode를 통하여 Swift 언어에서 C/C++ 사용하기 (How to call C/C++ code from Swift) (0) | 2022.02.07 |
[iOS] KVC (Key-Value Coding) (0) | 2022.01.25 |
[iOS] KVO (Key-Value Observing) (0) | 2022.01.24 |
댓글