4월 28일 (목)

apwierk·2022년 4월 28일
0

TIL

목록 보기
9/33

TIL (Today I Learned)

4월 28일 (목)

학습 내용

  • 이니셜 라이저

    1. 지정 이니셜라이저
    • 모든 프로퍼티의 초기화를 책임진다.(최소 1개는 있어야 한다.)
    • 같은 클래스 안에서 지정 이니셜라이저를 호출할 수 없다.
    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
	}
}

일기

  • 코딩에서 막혔을 경우 혹은 생각대로 되지 않을 경우 터널비전 에 빠질 때가 있다. 어쩌다 보니 사람들과 수다를 떨 때가 생기는데 그럴 때 헤어나오게 되어 좋다.
  • 함수 실행 순서가 헷갈리거나 코드 컨벤션을 관리할 때 종이에 적어가는 습관이 생기면서 글씨가 예뻐지는 기분이다. 악필에서 이제서야 벗어나는 듯 싶다.
profile
iOS 꿈나무 개발자

0개의 댓글