rxswift DisposeBag을 써야하는 이유

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • 모다피
      참가자
      • 글작성 : 7
      • 답글작성 : 1

      안녕하세요 모다피입니다.

       

      요즘 rxswift를 공부하고 있는데요.. 공부하다가 궁금한 점이 생겨서 질문 남깁니다.

      Observable을 써서 쓰레드 처리하는 이벤트를 만들어서 처리하고자하는 이벤트를 넣고 이벤트 완료 후 .disposed(by: 사용했던 disposebag)을 사용하던데요.

      .disposed을 사용하는 이유를 정확히 모르겠더라고요. Objective c 에서 alloc하고 사용하고나면 nil이나 dealloc시키는 것과 같은 원리라고 생각하면 될까요?!

      메모리사용 누수를 줄이기 위해서인가요? 만약 .disposed을 사용하지 않을 시 어떻게 될까요?!

       

      rx 초보라서 고수님들 답변 부탁드립니다. 항상 친절히 댓글달아주셔서 감사합니다..

    • 멍단비
      참가자
      • 글작성 : 10
      • 답글작성 : 98

      dispose를 사용하지 않으면 등록해놓은 옵져버블이 사라지지 않아서 말씀하신대로 메모리누수가 발생합니다..

      근데 그걸 일일히 하기 귀찮으니까 disposedBag이라는 가방에 만들어서 뷰가 사라질때 한방에 옵져버블이 다 메모리에서 해제되도록 하는 것으로 알고 있습니다.

      추가로 subscribe 중이던 disposable을 초기화 하고 싶을 때가 생기기도 하는데 그런 때에는 만들어놓은 disposeBag 프로퍼티에 새로운 DisposeBag 객체를 할당하면 됩니다.

      생성
      var disposeBag = DisposeBag()

      모든 옵져버블 초기화
      disposeBag = DisposeBag()

1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom