-
[Swift] property의 값을 가지고와 다른 property의 값에 넣어주자 : lazy varSwift 2022. 7. 17. 23:48
lazy 라는 키워드는 해당 property가 호출될때 실행된다
말인 즉슨
SomeClass의 instance가 생성이 된다면 someString에 값이 들어간다
그 시점에 someStringOfsomeString의 값은 할당 되어 있지 않았다.
하지만 instance.someStringOfsomeString이라고 호출하면 그제서야
값이 할당이 되어 호출이 된다.
말인 즉슨 같은 class 내 다른 property의 값도 가지고와 쓸수 있다는 말이다.
왜 lazy가 아니면 다른 property의 값을 가져다 쓸수 없을까?
그것은 init되는 시점에 다른 property 들의 값이 다 들어가 있지 않을수도 있고
버그를 일으킬 가능성이 많기 때문에 애초에 막아 놓은거 같다.
그리고 또 언제 사용할수 있을까?
SwiftUI를 사용해서 View를 그릴때
body 위에다가 가져다쓸 data들을 property로 선언한다
하지만 다른 property의 값을 가져다 property에 값으로 넣기가 어렵다
그때 쓰면 됨! ㅋ
아마 될껄? 아직 안해봣음 ㅎ
import SwiftUI class SomeClass { let someString: String = "Some String" lazy var someStringOfsomeString: String = "\(someString) of Some String" }
'Swift' 카테고리의 다른 글
[Swift] MVVM의 VM : ViewModel 이란? (1) 2022.07.26 [UIKit, SwiftUI] Assets에 Color 지정하고 불러오기 (0) 2022.07.23 [Swift] 함수의 Void는 과연 return 이 없다는 뜻일까? (0) 2022.07.17 [Swift] 메모리 관리를 위한 약한 참조 : weak (0) 2022.07.05 [Swift] String 에서 특정 문자 제거하기 : String().trimmingCharacters (0) 2022.07.04