🍏/SwiftUI + Combine
[Combine] Cancellable과 AnyCancellable
eungding
2019. 6. 28. 23:32
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 - 스펙 / 성능 / 개념 비교 이 포스팅에 적어두었구요
왜 이런 차이가 나는 지는 저도 잘 모르겠습니다 😭 누가 좀 알려주세요오... 정말 궁금..
반응형