[swift] lazy
처음 요청되어었을 때 생성됨
lazy로 선언하면 메모리에 올리지 않고 프로퍼티를 요청했을 때 초기화됩니다. 그래서 요청하지 않고 끝난다면 초기화되지 않고 종료됩니다. 그러므로 불필요한 성능저하나 공간 낭비를 줄일 수 있습니다.
항상 lazy var로 선언
왜냐하면 언제 초기화해서 완료되는지 알 수 없습니다. 처음에 값이 없다가 나중에 값을 가지게 되므로 var로 선언해야합니다. let은 초기에 값을 가지고 변하지 않습니다. 언제 값을 가질 수 있을지 모르기 때문에 thread safe하지 않습니다.
Stored Property로 선언
lazy는 요청되었을 때 메모리에 올라가 값을 가집니다. Computed Property는 메모리를 가지고 있지 않고 값을 반환하기 때문에 lazy를 사용할 수 없습니다.
Closure에서 self 사용 가능
일반적으로는 클래스가 생성된 다음에 접근해야하기 때문에 self를 사용할 수 없습니다. 그러나 lazy는 생성후 초기화하겠다는 의미여서 접근이 가능합니다.
참고
https://baked-corn.tistory.com/45
[Swift] lazy Variables
Lazy variables 이전의 글들을 보셨거나 스위프트 문법 공부를 해보신 분들이라면 스위프트에서 메모리는 굉장히 예민한 주제인 것을 알 수 있습니다. 저 역시 그렇게 느꼈고, 그런 예민함이 보다
baked-corn.tistory.com
https://hyunndyblog.tistory.com/155
[Swift] lazy 키워드
개요 메모리 관리에 대해 생각을 하다보니 C++에 lazy 키워드라는게 있었던거 같은데..생각이 들며 Swift에도 있겠지 하고 찾아보았습니다. 출처: abhimuralidharan.medium.com/lazy-var-in-ios-swift-96c75cb8a13..
hyunndyblog.tistory.com
https://velog.io/@dev-lena/View의-lazy-프로퍼티
lazy closure를 이용한 View 초기화
lazy property, 지연 저장 프로퍼티, lazy closure, View와 lazy 프로퍼티, lazy closure를 이용한 View 초기화
velog.io