develop
Class convenience init 본문
반응형
convenience init은 편의 생성자라고 하는데
convenience init을 사용하면 같은 클래스에 있는 다른 init를 호출해야 한다는 규칙이 있다.
class Example1 {
var value1: Int?
var value2: Int?
init(value1: Int?, value2: Int?) {
self.value1 = value1
self.value2 = value2
}
convenience init(value1: Int?) {
self.init(value1: value1, value2: 5)
}
}
let example = Example1(value1: 3)
나는 convenience init을 확장에서 자주 사용한다.
extension UITextField {
convenience init(placeholder: String) {
self.init()
self.placeholder = placeholder
}
}
let textField = UITextField(placeholder: "Hello")
원래 UITextField를 만들고 placeholder에 접근을 하는 두줄의 코드를 convenience init으로 한줄로 만들었다.
기본 Swift의 class나 라이브러리 같은 init을 만들수 없는 경우에 convenience init을 사용해서 간단한 코드로 만들 수 있다.
Struct에는 convenience를 사용할 수 없다.
반응형
'iOS' 카테고리의 다른 글
Struct Mutating (0) | 2021.01.30 |
---|---|
Require (0) | 2021.01.29 |
Class Struct == Operator (0) | 2021.01.27 |
Struct initialization (0) | 2021.01.26 |
autoreleasepool (0) | 2021.01.25 |
Comments