-
swift - Initializer and Deinitializer #1 (Initializer)swift 2021. 1. 12. 15:13
Initializer
열거형, 구조체, 클래스는 모두 설계도
설계도를 기반으로 생성한것이 Instance
새로운 instance를 생성하는 것이 초기화 (Initialization) -> 모든 속성이 기본값을 가지고 있다.
Initialization
// 초기화 방식 class Position { // 1. 선언과 동시에 기본값 저장 // 2. initializaion에서 초기화 var x = 0.0 var y: Double var z: Double? // Optional 속성은 기본값을 저장하지 않으면 자동으로 nil로 초기화 되기 때문에 init필요 없음 init() { y = 0.0 } } class Position2 { // 이렇게 기본값을 다 넣어주고 init을 선언하지 않으면 자동으로 기본 default initization이 암묵적으로 생성된다. var x = 0.0 var y = 0.0 var z: Double? = nil } let p = Position2()
class SizeObj { var width = 0.0 var height = 0.0 init(width: Double, height: Double) { self.width = width self.height = height } convenience init(value: Double) { // width = value // height = value // init delegate self.init(width: value, height: value) } }
Memberwise Initializer
// 구조체는 memberwise initializer 지원 struct SizeValue { var width = 0.0 var height = 0.0 } let s = SizeValue() // init을 직접구현 하지 않으면 밑에 init을 자동으로 제공한다. SizeValue(width: 1.2, height: 3.4)
'swift' 카테고리의 다른 글