Skip to content

[Fix]자식 코디네이터가 부모 코디네이터에서 안 사라지는 초대박 긴급 이슈 #1

Description

@SHcommit

진작에 체크 했어야 했는데 개발 당시 네트워크 과제 마감일이 얼마남지 않았고 제일 중요한 TCP 통신을 활용한 채팅을 서버와 연동하는 파트만 남았기에 코드의 에러들을 충분히 파악하지 못햇습니다.......

그 결과 각각의 coordinator에서 finish함수는 구현했지만 실제로 호출을 하지 않았습니다. 너무 바빴던 나 머지.. 시험도 끝나고 과제도 끝나서 추후 확인 했는데 parent coordinator에서 child coordinator의 인스턴스가 계속해서 생성만 되는 문제를 발견했습니다.

스크린샷 2023-06-27 오전 6 14 56

위와 같이 loginCoordinaotr -> SignUpCoordinator로 갔다가 다시 SignUpCoordinator가 해제될 때 loginCoordinator의 loginVC뷰가 will load되는 시점에 loginCoordinator가 보유중인 자식 코디네이터가 삭제됬는지를 프린트 하려고 합니다.

ezgif com-video-to-gif

"와우 자식 코디네이터는 할당 해제 되지 않고 쌓여만 갔다 OTL"

이 문제는 자식 코디네이터에서 finish함수는 구현해줬고 이 함수를 통해 자신이 보유중인 child coordinators삭제 후 parent coordinator로부터 자신이 삭제되야만 사라집니다.

image

여기 친절하게 이전에 주석으로 썼었는데 .... 호출을 안해줬네ㅠㅠ

그래서 VC가 회면에서 사라질 때 해당 코디네이터를 부모 코디네이터로부터 제거하는 finish함수를 호출하면!!
스크린샷 2023-06-27 오전 6 23 22

ezgif com-video-to-gif (1)

짜잔!!

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

"굳이 왜 다운 캐스팅을 해서 추상화를 깨는 것인가!!?" 이땐 뭐가 문젠지 도저히 몰랐는데 생각해보니까 다운캐스팅해서 parent의 멤버변수를 사용할 것도 아닌데... 굳이 할 필요가 없었다는 것을 뒤늦게 약 30분만의 대화 끝에 알게 되었습니다.. 크으..

image

수정 완료 +_+

그리고 혼자 removeSelf가 잘 동작되는지~ 자식 코디네이터 부모로부터 삭제 잘 되나 봤더니 자식이 남아있다는 문제를... 발견했다는 사실~

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions