프로토콜, 불투명 반환
Audio
오늘은 오랜만에 출근이라 그런지 Lazy에 대해서만 공부를 조금 해보고 못해서 메모가 짧다.. 대신 문법 책을 일단 더 보고.. 있다.. 그래도 오늘도 역시 HIG와 문법을 차근차근 나가면서 기초가 이래서 중요하구나 여태까지 프로그래밍을 다른 언어로 하긴 했어도 기초부터 쌓는게 이런 것들을 또 새롭게 알려주는구나를 배울 수 있었다.
220103
Lazy 프로퍼티
lazy는 초기 init시에 초기화 되는것이 아니라 호출 될 때 생성이 되면서 메모리에 올라가며 이후 같은 변수를 사용시 다시 초기화가 진행되지 않고 이전에 생성된 변수를 그대로 사용
iOS는 앱의 사용량이 너무 높아지면 앱을 죽인다.
개발자는 처음부터 메모리 관리를 잘 신경써야 한다.
Swift는 비싼 코스트의 작업을 in-time 계산할 수 있게 하기 위해
lazy variables를 제공한다.
lazy variables는 변수가 처음 요청되었을 때만 사용자가 지정한 함수를 사용하여 생성된다.
장점
-
lazy property와 관련된 클로저는 오직 그 프로퍼티를 읽을 때만 실행된다. 즉 사용자의 판단에 그 프로퍼티가 잘 사용되지 않는다면, 사용자는 불필요한 할당과 실행을 방지할 수 있다.
-
lazy property를 stored property의 값으로 채울 수 있다.
-
lazy property의 클로저 안에 self를 사용할 수 있다. 순환 참조를 일으키지 않는다.