Subscriber

Horus-iOS·2022년 12월 27일
0

Combine

목록 보기
5/9

https://developer.apple.com/documentation/combine/subscriber

A protocol that declares a type that can receive input from a publisher.

퍼블리셔로부터 인풋을 받을 수 있는 타입을 선언하는 프로토콜입니다.

Declaration

protocol Subscriber<Input, Failure> : CustomCombineIdentifierConvertible

Overview

Subscriber 인스턴스는 퍼블리셔로부터 요소들의 스트림을 받습니다. 또한, 그들의 관계에 대한 변경점을 설명하는 라이프 사이클 이벤트도 함께 받습니다. 주어진 Subscriber의 인풋과 Failure associated type은 상응하는 퍼블리셔의 아웃풋 및 Failure와 일치해야 합니다.

퍼블리셔의 subscribe(_:) 메소드를 호출해서 Subscriber와 퍼블리셔를 연결할 수 있습니다. 이 호출을 구현한 후 퍼블리셔는 Subscriber의 receive(subscription:) 메소드를 호출합니다. 이렇게 하면 Subscriber에게 퍼블리셔로부터 요소들을 요구하기 위해, Subscription을 선택적으로 취소하기 위해 사용하는 Subscription 인스턴스를 제공합니다. Subscriber가 초기 요구를 만든 후 퍼블리셔는 새롭게 퍼블리시된 요소들을 전달할 수 있도록 비동기로 receive(_:)를 호출합니다. 퍼블리셔가 퍼블리싱을 중단하면 receive(completion:)를 호출하며, 퍼블리싱이 정상적으로 완료되었는지 혹은 오류가 나타났는지를 나타내는 Subscribers.Completion 타입의 파라미터를 사용합니다.

컴바인은 퍼블리셔 타입에 대한 연산자로써 아래와 같은 Subscriber를 제공합니다.

  • sink(receiveCompletion:receiveValue:)는 컴플리션 신호와 새로운 요소를 받는 각 시점을 받을 때 클로저를 실행합니다.
  • assign(to:on:)은 새롭게 받은 값을 주어진 인스턴스에 있는 키 경로에 따라 확인된 속성에 씁니다.

0개의 댓글