스크린샷 2024-03-10 오후 5.39.38.png

AnyCancellable은 Cancellable이라는 프로토콜의 구현체로, 메모리 관리와 리소스 관리 차원에서 굉장히 중요한 역할을 담당하고 있어요.

Cancellable은 cancel() 단 한개의 메서드만 가지고 있어요.

public protocol Cancellable {
    func cancel()
}

이 메서드를 호출하면 구독이 취소되고, Publisher로부터 더 이상 데이터 스트림을 받지 않아요.

이 개념이 굉장히 중요한 이유는 구독을 취소하지 않으면 메모리 누수가 발생하게 되어 앱 성능이 떨어지게 돼요!

이제 Cancellable을 구현한 AnyCancellable에 대해 알아볼게요.

특징

사용

Publisher을 구독할 때 항상 .store(in: &cancellables) 를 붙이던 거, 기억나시나요?