Convenience init

Updated:

🔷 Convenience init

Initialization - https://docs.swift.org/swift-book/LanguageGuide/Initialization.html

Convenience init 을 통해 기존 지정 생성자에 추가적으로 작업이 가능합니다.

class Friend {
	var name: String
	var age: Int
	// 지정 생성자 메소드 designated initializer
	init(name: String) {
		self.name = name
		self.age = 10
	}

	// 기존 생성자에 추가 작업하기 = convenience init
	convenience init(name: String, age: Int) {
		// !중요 convenience 생성자는 최소 지정 생성자 메소드 중 하나를 반드시 호출 해야 합니다
		// 지정 생성자 호출
		self.init(name: name)

		// 추가적으로 원하는 설정
		self.age = age
	}
}

let myFriend = Friend(name: "철수")
print("\(myFriend.name) / \(myFriend.age)") // 철수 / 10

let bestFriend = Friend(name: "제임스", age: 30)
print("\(bestFriend.name) / \(bestFriend.age)") // 제임스 / 30


Reference

Swift Tip of the day - 스위프트 기초 문법 - https://spangle-wedelia-2dc.notion.site/Swift-Tip-of-the-day-c428bfd990674bcfa2a4973e5d08c4eb

꼼꼼한 재은 씨의 스위프트 문법편 - https://book.jacobko.info/#/book/1186710233

Categories:

Updated:

Leave a comment