티스토리 뷰

IOS/swift

[Swift] lazy

내일도이렇게 2022. 3. 1. 14:28

lazy 

지연 저장 속성으로 인스턴스 초기화 되는 시점에 메모리에 공간과 값을 갖는 것이 아니라

해당 속성에 접근하는 순간에 개별적으로 초기화된다.

 

lazy 를 사용하기 위한 조건

  • lazy는 var와 사용된다.
  •  struct 와 class 에서만 사용된다.
  • 연산프로퍼티에는 lazy 를 사용할 수 없다.

 

lazy 를 사용해야 하는 이유 

1) 메모리를 많이 차지 하는 경우 

2) 다른 속성에 의존해야하는 경우 

 

class AView {
    var a: Int
    
    // 1) 메모리를 많이 차지할때
    lazy var view = UIImageView()     // 객체를 생성하는 형태
    
    // 2) 다른 속성을 이용해야할때(다른 저장 속성에 의존해야만 할때)
    lazy var b: Int = {
        return a * 10
    }()
    
    init(num: Int) {
        self.a = num
    }
}

let a = AView(num: 5)
print(a.b)

Reference 

https://seons-dev.tistory.com/126

https://www.inflearn.com/course/%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-%EB%AC%B8%EB%B2%95-%EB%A7%88%EC%8A%A4%ED%84%B0-%EC%8A%A4%EC%BF%A8/dashboard

 

 

'IOS > swift' 카테고리의 다른 글

[Swift] Optional  (0) 2022.03.22
[Swift] Codable  (0) 2022.03.22
Property wrapper (UserDefaults 적용)  (0) 2022.03.05
Result Type  (0) 2022.03.03
[Swift] class & struct  (0) 2022.02.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함