반응형
Outlets은 왜 암시적 추출 옵셔널인지 기록합니다.
이를 설명하기 위해 전제가 있다.
클래스 또는 구조체의 인스턴스는 초기화를 마치기 전에 모든 저장 프로퍼티를 초기화시켜야 한다.
만약 초기화할 때 저장 프로퍼티가 가져야 할 값을 모른다면 default 값을 할당하거나 암시적 추출 옵셔널을 사용하여 선언할 수 있다.
이는 outlets이 왜 암시적 추출 옵션으로 선언해야 하는 이유가 된다.
outlet의 값은 초기화되면서 설정할 수 없다. 그 이유는 뷰 컨트롤러가 초기화되어야 뷰가 로드되기 때문이다.
이 말은 뷰 컨트롤러의 초기화 직후에 모든 outlets은 값이 없다는 것을 의미한다.
그래서 암시적 추출 옵셔널로 선언해서 편리하게 인터페이스를 빌드하는데 사용한다.
하지만 암시적 추출 옵셔널은 런타임 오류를 발생시킬 수 있어 조심해서 사용해야 한다.
뷰 컨트롤러가 뷰를 로드하기 전이나 로드하는 동안 outlet에 접근하면 런타임 오류가 발생할 수 있다.
왜 암시적 추출 옵셔널을 사용하는지 궁금했는데 해소되었다..
혹시나 암시적 추출 옵셔널에 대해 궁금하다면 여기를 눌러주세요!
부족한 점은 피드백해주시면 감사합니다😄
참고:
https://cocoacasts.com/should-outlets-be-optionals-or-implicitly-unwrapped-optionals
반응형
'iOS' 카테고리의 다른 글
[iOS] Unwind Segue (1) | 2021.11.11 |
---|---|
[iOS] CaseIterable (1) | 2021.06.27 |
[iOS] UIView & CALayer (0) | 2021.06.01 |
[iOS] Notification Center (0) | 2021.05.27 |
[iOS] Foundation (0) | 2021.05.22 |
댓글