Search
Duplicate

Combine - Subscriber

Created
2024/02/02 03:21
Tags
Combine

 Subscriber

데이터를 수신하고 처리하는 방법을 정의한다.
protocol Subscriber
목적 : Subscriber 프로토콜은 값을 수신하고, 완료 이벤트를 처리하는 객체를 정의한다. Publisher 가 발행하는 데이터 스트림을 구독하고 처리할 수 있는 기능을 제공한다.
주요 메서드 : receive(subscription:), receive(_: Input) -> Subscribers.Demand, receive(completion)
enum Subscribers
목적 : Subscribers 열거형은 다양한 종류의 구독자를 제공하는 네임스페이스 역할을 한다. 예를들어 Subscribers.Sink 는 수신한 각 값에 대해 클로저를 실행하는 구독자 타입이다.
struct AnySubscriber
목적 : AnySubscriber 는 타입 소거를 통해 구체적인 Subscriber 타입의 정보를 숨기는 동시에, Subscriber 프로토콜을 준수하는 어떤 객체와도 호환될 수 있도록 한다. 이를 통해 더 유연한 코드 작성이 가능!
protocol Subscription
목적 : Subscription 프로토콜은 PublisherSubscriber 사이의 생명 주기와 데이터 흐름을 관리한다. Subscriber 가 데이터 요청과 구독 취소를 할 수 있게 해준다.
주요 메서드 : request(_: ), cancel()
enum Subscriptions
목적 Subscriptions 열거형은 다양한 종류의 구독을 생성하는데 사용되는 factory 메서드를 제공한다. 예를들어, 사용자 정의 구독 로직을 구현할 때 사용할 수 있다.
예제)
import Combine // Publisher 생성 let publisher = Just("Hello Combine!") // Subscriber 정의 및 구독 생성 let subscriber = Subscribers.Sink<String, Never> { completion in switch completion { case .finished: print("Completed Successfully") case .failure(let error): print("Received Error: \(error)") } } receiveValue: { value in print("Received Value: \(value)") } // Publisher에 Subscriber 구독시키기 publisher.subscribe(subscriber)
Swift
복사