본문 바로가기
Swift Study

weak, unowned

by 창브로 2024. 2. 20.
728x90

지난 포스팅에 weak과 unowned는 ARC로 메모리관리를 할 때 참조 count를 증가시켜주지 않는다는 것을 확인했습니다.

이번 시간에는 weak과 unowned가 무엇이며, 이들이 어떻게 Reference Count를 증가시키지 않고 둘의 차이점이 뭔지 알아보겠습니다!

 

weak과 unowned는 어떻게 사용하나요??

지난 포스팅에서도 말씀 드렸지만 정리를 해드리면

변수나 상수를 사용하기 전 weak, unowned를 앞에 붙여줍니다.

weak var test: Test?
unowned var test2: Test?

 

Reference Count를 증가시키지 않는 공통점이 있습니다!

근데 왜 같은 일을 하는데 두 개가 필요할까요? 차이점이 있을까요??

 

weak과 unowned의 차이점이 뭐예요?

1. unowned는 언제나 값이 존재할 것이라고 가정되는 곳에만 사용해야 합니다.

(반대로 weak은 값이 없을 수도 있는 곳에서도 사용)

 

2. weak의 경우 nil로 설정될 수 있기 때문에 항상 옵셔널로 설정됩니다.

(weak의 참조 값은 접근하기 위해 원래핑 해야하지만 unowned는 언래핑 하지 않아도 됩니다.)

 

생각보다 간단하죠?? 🤗

수고하셨습니다🙇🏻‍♂️

 

'Swift Study' 카테고리의 다른 글

Error Handling  (0) 2024.02.23
Optional  (0) 2024.02.21
Strong Reference Cycle  (0) 2024.02.20
ARC  (0) 2024.02.20
Class vs Struct  (0) 2024.02.19