RIBs 구현 중 Leak 문제가 계속 생깁니다…

태그: 

0 답변 글타래를 보이고 있습니다
  • 글쓴이
    • odyflame
      참가자
      • 글작성 : 14
      • 답글작성 : 17
      100 포인트

      안녕하세요!
      회사 내에서 RIBs를 적용해보고 있는 신입개발자입니다..

      다름이 아니라 RIBs를 쓰는데 계속 leak detector가 leak이 된다고 에러가 나네요

      상황은 하나의 RIB에서 자식 RIB을 attach 한다음 navigationView.pushViewController 로 네비게이션 push를 하였습니다.

      그 다음 navigation back button을 누르면 자식 RIB을 detach를 하고 popViewController 상황입니다. 

      여기서 pop은 잘 되서 원래 RIB으로는 돌아오는데 leak detector가 계속 leak이라고 하네요.. 차이점은 detach하고 나서 다른 RIB로 attach를 하지 않아서 그런지, currentChild가 nil이 되어서 그런지 그걸 잘 모르겟어요

      혹시 RIBs를 사용해 보신 분 중에서 어떻게 하는지 아시는 분 계실까요?? 

      혹시 몰라 예제 코드를 첨부합니다

      func goToMusic() {
      
              detachCurrentChildWithView()
      
              routeToMusic()
      
          }
      
          func dismissMusic() {
      
              detachCurrentChildWithView()
      
          }
      
          private func routeToMusic() {
      
              let MusicRIB = musicBuilder.build(withListener: interactor)
      
              self.currentChild = MusicRIB
      
              attachChild(MusicRIB)
      
              viewController.pushViewController(viewController: MusicRIB.viewControllable)
      
          }
      
          private func detachCurrentChild() {
      
              if let currentChild = currentChild {
      
                  detachChild(currentChild)
      
                  self.currentChild = nil
      
              }
      
          }
      
          private func detachCurrentChildWithView() {
      
              if let currentChild = currentChild {
      
                  detachChild(currentChild)
      
                  viewController.popViewController()
      
                  self.currentChild = nil
      
              }
      
          }
      
      private let musicBuilder: MusicRIBBuildable
      
      private var currentChild: ViewableRouting?
      
      

      위의 코드에서 자식 RIB을 detach하기 위해 dismissMusic함수를 호출하면, dismiss는 잘 되는데 그 이후에 오류가 떠서 문제인데 제생각에는 leak이 날 경우가 없는데 이를 어찌 하면 좋을지 모르겟네요

      • 이 게시글은 odyflame에 의해 1 month, 1 week 전에 수정됐습니다.
      • 이 게시글은 odyflame에 의해 1 month, 1 week 전에 수정됐습니다.
      0
0 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 260-27-00477
통신판매업 신고번호 : 제 2020-충북청주-0663 호
고객센터 : 카카오톡채널 @yagom