오늘은 강한 순환 참조가 발생했을 때 해결하기 위한 방법으로
weak, unowned를 사용하는 것을 알고 있었는데
weak?과 unowned의 차이에 대해 좀 더 자세하게 알아보려고한다.
평소에 weak은 nil을 반환하고 unowned는 정말 확실할 때 사용하는데 앱이 크래쉬나서 사용을 안하는걸 추천하는걸로 알고 있었지만
존재하는 이유가 있을 것 아닌가!? 그래서 한번 정리해보려고한다.
weak 약한 참조! - 참조하는 인스턴스를 약하게 유지하는 참조
다른 인턴스의 생명주기가 짧을 때 사용
다들 아시다시피 nil값으로 변경 될 수 있기때문에 옵셔널 타입의 변수로 선언되어야함!!
Unowned 미소유 참조! - weak과 마찬가지로 약한 참조
미소유 참조는 다른 인스턴스와 같은 생명 주기를 가지거나 더 긴 생명 주기를 가질 때 사용!
nil로 설정하지 않아서 상수로 선언
'개발 > 개발' 카테고리의 다른 글
[SwiftUI] - Image 이미지 (0) | 2020.08.29 |
---|---|
Swift - 저장 프로퍼티(Stored Properties) (0) | 2020.08.21 |
Swift - CGPoint, CGSize, CGRect 비교 정리 (0) | 2020.08.16 |
Swift - 프로토콜 프로그래밍을 지향하는 이유 (0) | 2020.08.11 |
iOS - UI를 Storyboard와 xib 그리고 Code의 장단점 비교 정리 (1) | 2020.08.09 |