-
Notifications
You must be signed in to change notification settings - Fork 0
Description
진작에 체크 했어야 했는데 개발 당시 네트워크 과제 마감일이 얼마남지 않았고 제일 중요한 TCP 통신을 활용한 채팅을 서버와 연동하는 파트만 남았기에 코드의 에러들을 충분히 파악하지 못햇습니다.......
그 결과 각각의 coordinator에서 finish함수는 구현했지만 실제로 호출을 하지 않았습니다. 너무 바빴던 나 머지.. 시험도 끝나고 과제도 끝나서 추후 확인 했는데 parent coordinator에서 child coordinator의 인스턴스가 계속해서 생성만 되는 문제를 발견했습니다.
위와 같이 loginCoordinaotr -> SignUpCoordinator로 갔다가 다시 SignUpCoordinator가 해제될 때 loginCoordinator의 loginVC뷰가 will load되는 시점에 loginCoordinator가 보유중인 자식 코디네이터가 삭제됬는지를 프린트 하려고 합니다.
"와우 자식 코디네이터는 할당 해제 되지 않고 쌓여만 갔다 OTL"
이 문제는 자식 코디네이터에서 finish함수는 구현해줬고 이 함수를 통해 자신이 보유중인 child coordinators삭제 후 parent coordinator로부터 자신이 삭제되야만 사라집니다.
여기 친절하게 이전에 주석으로 썼었는데 .... 호출을 안해줬네ㅠㅠ
그래서 VC가 회면에서 사라질 때 해당 코디네이터를 부모 코디네이터로부터 제거하는 finish함수를 호출하면!!

짜잔!!
이전에 커스텀 해둔 코디네이터를 여가 프로젝트에 도입하려고 석현이형이 제 코디네이터 관련 코드를 훑다가 형이 발견한 코드인데

"굳이 왜 다운 캐스팅을 해서 추상화를 깨는 것인가!!?" 이땐 뭐가 문젠지 도저히 몰랐는데 생각해보니까 다운캐스팅해서 parent의 멤버변수를 사용할 것도 아닌데... 굳이 할 필요가 없었다는 것을 뒤늦게 약 30분만의 대화 끝에 알게 되었습니다.. 크으..
수정 완료 +_+
그리고 혼자 removeSelf가 잘 동작되는지~ 자식 코디네이터 부모로부터 삭제 잘 되나 봤더니 자식이 남아있다는 문제를... 발견했다는 사실~




