앱/iOS(Swift)

[Swift] 클로저에서 self 를 사용하는 이유

리드맥 2022. 2. 16. 17:35

클로저는 힙메모리에 있는데 만일 클로저가 ViewController 보다 메모리에 오래남아있으면  ViewController 가 사라진후 클로저를 실행하려고 하면 앱 충돌이 일어난다. 힙메모리에 없는것을 가리키기 떄문이다.

weak를 사용하는 방법도 있는데 이것도 순환을 깨버릴 수 도 있다

self 를 사용하면 옵셔널 타입의 UIViewController 이 된다. 

클로저에서 self 는 인자로 받는 weak self 인데 클로저 특성으로 weak self 는 생략 가능하다