이니셜 라이저
- 지정 이니셜라이저
- 모든 프로퍼티의 초기화를 책임진다.(최소 1개는 있어야 한다.)
- 같은 클래스 안에서 지정 이니셜라이저를 호출할 수 없다.
- 편의 이니셜라이저
- 같은 클래스 안에서 지정 이니셜라이저를 호출해주는 책임이 있다.
- 클래스에서만 사용 가능하다.
- 편의 이니셜라이저는 상속이 불가능하다.
lazy
다음과 같이 파라미터의 초기값이 모두 설정되어 있는 경우에만 이용 가능하며 값을 갖고 있지 않다가, fullName을 호출할 때 값이 초기화 되는 특징을 갖는다.
class test {
let firstName: String
let lastName: String
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
lazy var fullName: String {
return firstName + lastName
}
}
try-catch문에 대해서 더 알게 되었다.
try 문 안에 실행함수가 더 있다면 try를 해줘야한다.
또한 다음과 같이 catch문의 디폴트 값을 넣어주어야 한다.
enum Error: Error {
case errorcase
}
do {
try test()
} catch Error.errorcase {
print(error)
} catch {
print("알 수 없는 에러")
}
func test() {
if true {
try a()
} else {
Error.errorcase
}
}