Initializer
작성일
designated initializer //기본형태
class MyInfo {
var name: String
var myId: String
//
init(name: Stirng, id: String) {
self.name = n
self.myId = id
}
}
var myInfo1 = MyInfo(m: "kim", id: "abcd")
myInfo1.myId
myInfo1.name
출력
"abcd"
"kim"
init을 사용하면, 처음에 생성되는 시점에, 받아서 세팅을 해줘야한다.
위 코드를 보면 myInfo1을 생성할때 값을 받아야함 위에값에
var name: String = ""
이라고 세팅해줘도 되고 아니면
init() {
self.name = ""
self.myId = ""
}
이렇게 세팅해 줘도 된다.
convenience initializer // 필수조건 - 다른 init을 반드시 실행해야 한다.
class MyInfo {
var name: String
var myId: String
var isAdult: Bool
init(name: Stirng, id: String) {
self.name = n
self.myId = id
self.isAdult = (age > 19) ? true : false
//추가된 부분
convenience init(){
self.init(n: "", id: "") {
}
}
}
var myInfo1 = MyInfo(m: "kim", id: "abcd")
myInfo1.myId
myInfo1.name
위 convenience init()을 보면 위에 init 코드에서 값을 받는 코드뺴고 다 같다.
이럴때 사용하는 것이다.(연산하는 코드를 최대한 줄이기 위해서)