Swift/swift 문법

강한참조 사이클 - weak vs unowned

Lyla. 2023. 4. 11. 17:59

[객체 간의 강한참조 사이클 예방법]

weak 과 unowned의 공통점

: 가르키는 인스턴스의 RC의 숫자를 올라가지 않게 한다. 

 

차이점 

weak : 소유자에 비해 보다 짧은 생명주기를 가진 인스턴스를 참조할 때 주로 사용

-> nil 자동 할당 O (가리키는 객체가 사라졌을 시)

unowned: 소유자보다 인스턴스의 생명주기가 더 길거나 같은 경우에 사용 

-> nil 자동 할당 X, error 발생

 

[클로저에서의 강한참조 사이클 예방법]

캡처리스트 안에서 weak or unowned 사용