메모리 누수 발생 문제 - boostcampwm-2021/iOS04-OwnMyWay GitHub Wiki
문제 상황
- Location Update를 받을 때 delegate로 Ongoing ViewController를 지정해서 Location을 처리하도록 설정
- 그러나 홈화면으로 pop한 후에도 Location을 계속해서 처리하는 함수가 호출되는 문제 발생 (ViewController가 해제되면서 함수가 실행되면 안된다 생각)
- 최종결론 : 특정 ViewController에서 화면을 나왔을 때 ViewController가 삭제되지 않고 남아있는 문제 발생
해결
- ViewController에 Deinit을 정의한후 하나씩 확인해보았다.
- 일부 ViewController에서 pop되었음에도 deinit이 실행되지 않는 현상 발견
- 따라서 해당 ViewController를 참조하는 객체가 남아있어 순환참조가 발생한다고 판단하고 하나씩 확인해보았다.
- 최종적으로 closure에서 weak self를 해주지 않았을 경우 발생하는 것을 확인!