왕논의 연구실

[swift] lazy 본문

iOS/Swift

[swift] lazy

ywangnon 2022. 6. 30. 01:24

 

처음 요청되어었을 때 생성됨

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

 

'iOS > Swift' 카테고리의 다른 글

[Swift] 기기에 따른 화면 오토레이아웃 구성  (0) 2023.01.15
[Swift] CoreBluetooth  (0) 2022.11.30
[Swift] UIToolbar  (0) 2022.06.29
[Swift] 커스텀 폰트 적용  (0) 2022.06.27
[Swift] Struct vs Class  (0) 2022.06.18