티스토리 뷰

728x90
반응형

 

viewController가 deinit 될때, 그 안의 Pulisher가 auto-cancel 되는지 실험해봅시다 --! 

5초 후에 이벤트를 발행하는 Publisher와 3초 후에 deinit되는 viewController가 있습니다

 

1) stream을 안담아줄 때 

viewController가 deinit되어도 스트림이 살아있습니다 

 

 

2) stream을 Cancellable에 담아줄 때 

viewController가 deinit되어도 여전히 스트림이 살아있습니다 

 

3) stream을 Cancellable에 담아주고 deinit 때 cancel 시켜줄 때 

이렇게 deinit 될때 cancel시키는 코드를 넣어줘야지 스트림이 같이 끝납니다

 

4) stream을 AnyCancellable에 담아줄 때 

AnyCancellable에 담아줘야지 deinit 될 때 auto-cancel 됩니다 

AnyCancellable로 스트림의 메모리 관리를 해줘야합니다...!! 

 

 

Cancellable과 AnyCancellable이 어떻게 다른 지는  RxSwift vs Combine - 스펙 / 성능 / 개념 비교 이 포스팅에 적어두었구요

왜 이런 차이가 나는 지는 저도 잘 모르겠습니다 😭 누가 좀 알려주세요오... 정말 궁금..

반응형
댓글