티스토리 뷰
https://harryjeon.tistory.com/60
[RxSwift] 곰튀김님의 RxSwift 강의 (2)
이전 글 [RxSwift] 곰튀김님의 RxSwift 강의 (1) Subject 만들 때 부터 어떤 데이터를 내보낼지 정해져있다. Observable처럼 값을 받을 수도 있지만 (subscribe) 외부에서 값을 통제할 수도 있다. (onNext) AsyncSubje
harryjeon.tistory.com
곰튀김님의 RxSwift 강의를 듣는 도중 Relay, Subject, Driver가 나왔다.
강의에서 설명을 해주셨고 정리도 해놨지만 조금 더 찾아보려고 한다.
Subject
PublishSubject
초기값이 없다.
다른 Observer가 Subscribe한 순간 아무런 값도 주지 않는다.
Subscribe한 후 데이터가 발생하면 다 준다.
BehaviorSubject
초기값이 있다.
다른 Observer가 Subscribe하면 가장 최근에 발생했던 데이터를 준다.
ReplaySubject
초기값이 없다.
다른 Observer가 Subscribe하면 Subscribe이전의 모든 데이터를 다 준다.
AsyncSubject
초기값이 없다.
Subject가 complete되면 complete시점에서 가장 최근 데이터를 준다.
Relay
RxCocoa에 포함되어있다.
Subject의 Wrapper 클래스로 종료 이벤트로 종료되지 않는다.
onNext가 아닌 accept로 값을 전달받아 subscriber에게 값을 준다.
Error, Completed를 방출하지 않는 Subject이다.
종료되지 않는 특성으로 인해 UI 관련으로 사용한다. UI는 에러가 발생했다고 화면을 안그리거나 stream을 멈추면 안되기 때문이다.
PublishRelay
PublishSubject를 래핑한 것이다.
PublishSubject와 같은 특성을 가지고 있다. (초기값이 없다. 등)
BehaviorRelay
BehaviorSubject를 래핑한 것이다.
마찬가지로 BehaviorSubject와 같은 특성을 가지고 있다.
BehaviorRelay는 현재 값을 출력할 수 있다.
Driver
MainScheduler에서 동작한다.
Error를 방출하지 않는다.
UI Binding에 사용하기 적합하다.
subscribe()이 아닌 drive()를 사용한다.
'iOS > RxSwift' 카테고리의 다른 글
[RxSwift] Hot Observable, Cold Observable (0) | 2022.12.18 |
---|---|
[RxSwift] 곰튀김님의 RxSwift 강의 (2) (0) | 2022.12.14 |
[RxSwift] 곰튀김님의 RxSwift 강의 (1) (0) | 2022.12.12 |
[RxSwift] RxSwift는 뭔가? (0) | 2022.11.14 |
- Total
- Today
- Yesterday
- ObservedObject
- Swift
- docker
- ChatGPT
- 카메라
- Custom
- SwiftUI
- strcut
- delegate
- navigation
- Protocol
- enumerations
- tabview
- 곰튀김
- kakao
- AWS
- Generic
- IOS
- onTapGesture
- Login
- 의미있는이름
- rxswift
- CodingTest
- Git
- frame과 bounds 차이
- MVVM
- AWS Fargate
- file private
- Xcode
- OCR
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |