티스토리 뷰
Combine 프레임워크의 핵심 컨셉들은
Publisher
Subscriber
Operator이다.
Publisher
values와 error들이 생성되는 방법을 정의한다.
값 타입이다.
subscriber의 등록을 가능하게 한다.
publisher은 프로토콜이다.
associatedtype Output과 Failure로 이루어져 있으며,
func receive<S: Subscriber>(_ subscriber: S) where S.Input == Output, S.Failure == Failure이 있다.
Subscriber
values와 completion을 받는다.
레퍼런스 타입이다.
Subscriber은 프로토콜이다.
associatedtype Input과 Failure로 이루어져 있으며,
func receive(subscription: Subscription)
func receive(_ input: Input) -> Subscriber.Demand
func reveive(completion: Subscribers.Completion<Failure>)이 있다.
또한 Publisher과 Subscriber은 서로 소통이 가능하다.
Subscriber의 Input타입과 Publisher의 Output타입이 동일해야 한다.
Operator
Publisher을 채택한다.
values를 변경하기 위한 행동을 설명한다.
Publisher을 구독한다. (upstream)
결과를 Subscriber에게 보낸다. (downstream)
값 타입이다.
예를 들어
Publisher은 송신국이라 치고,
Subscriber은 라디오라친다.
우리는 날씨에 대한 정보를 받아오는 작업을 처리한다고 가정한다.
Subscriber은 날씨에 대한 정보를 받기 위해 주파수를 맞춰준다.
Publisher은 날씨 데이터를 보낸다.
날씨는
🌞24℃
🌞25℃
🌞21℃
이런 식으로 전송된다.
우리가 필요한 것은 온도만 필요하고 🌞는 필요하지 않는다.
이때 Operator을 통해 필요한 데이터만 걸러낸다.
Subscriber은 필요한 데이터 24℃ 만을 받게 된다.
즉 Publisher - Operator - Subscriber의 상호작용으로 이루어진다.
'Tech > Combine' 카테고리의 다른 글
Combine provides a declarative Swift API . . . (0) | 2020.03.03 |
---|---|
Combine 시작하기 (0) | 2020.03.03 |
- Total
- Today
- Yesterday
- SWIFT
- 딥러닝
- Deep learning
- ReactiveX
- ARC
- 알고리즘
- string
- ios
- 책
- iOS SwiftUI
- 책 추천
- RX
- objective-c
- objc
- Animation
- 머신러닝
- 독서
- 책 후기
- swift5
- 문자열
- Algorithm
- rxswift
- leetcode
- 애니메이션
- swiftUI
- stanford SwiftUI
- wwdc
- 스위프트UI
- Xcode
- 스위프트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |