Covenience init에 대해서 이해하려면 먼저 기본 init인 Designated init에 대해서 이해해야 한다.
class Person {
var name: String
var age: Int
var gender: String
init(name: String, age: Int, gender: String) {
self.name = name
self.age = age
self.gender = gender
}
}
Convenience init을 사용하기 위해선 Designated init이 먼저 선언 되어야 합니다.
Swift의 이니셜라이저 규칙 중 “Convenience init은 같은 클래스에서 다른 이니셜라이저를 호출해야한다.”라는 규칙이 있습니다.
class Person {
var name: String
var age: Int
var gender: String
init(name: String, age: Int, gender:String) {
self.name = name
self.age = age
self.gender = gender
}
convenience init(age: Int, gender:String) {
self.init(name: "Derrick", age: age, gender: gender)
}
}