앱/iOS(Swift)
[Swift] 클로저에서 self 를 사용하는 이유
리드맥
2022. 2. 16. 17:35
클로저는 힙메모리에 있는데 만일 클로저가 ViewController 보다 메모리에 오래남아있으면 ViewController 가 사라진후 클로저를 실행하려고 하면 앱 충돌이 일어난다. 힙메모리에 없는것을 가리키기 떄문이다.
weak를 사용하는 방법도 있는데 이것도 순환을 깨버릴 수 도 있다
self 를 사용하면 옵셔널 타입의 UIViewController 이 된다.
클로저에서 self 는 인자로 받는 weak self 인데 클로저 특성으로 weak self 는 생략 가능하다