issues
search
samsung-ga
/
woody-iOS-tip
🐶 iOS에 대한 소소한 팁들과 개발하다 마주친 버그 해결기, 그리고 오늘 배운 것들을 모아둔 레포
19
stars
0
forks
source link
Subject vs Relay
#34
Open
samsung-ga
opened
2 years ago
samsung-ga
commented
2 years ago
차이점
Relay는 subject와 달리 complete와 error를 발생시킬 수 없다. 즉 dispose 되기 전까지 계속 작동한다. 그렇기에 UI 작업을 하기에 적합하다.
근데 UI 작업은 메인 쓰레드에서 해야 하지 않을까?
그래서 driver라는 trailt가 있다.
Relay와 Driver 모두 RxCocoa 라이브러리에 있다.
Relay
Relay는 Subject 감싸고 있는 Wrapper 클래스임
이벤트를 방출할 때, onNext 대신 accept를 사용한다.
갑자기 Driver
Relay를 관찰할 때, observable 대신 observable wrapper 클래스인 driver의 형태로 바꾸어서 관찰 가능하다.
Main Thread에서 작업하고 싶을 때 Observable 대신 사용한다. 즉 UI 작업할 때 사용해요.
방법은 relay에서 asDriver() 메소드를 이용!! main scheduler로 설정됩니다.
UI 작업에 특화되어 있는 옵저버블이다! UI 처리에 특화된 observable들을 trait라고도 하는데 이것말구 maybe, single 등 여러 종류가 있다.
정리
결국 쓰임을 보면 아래 순서와 같다.
relay -> driver -> UI
차이점
Relay와 Driver 모두 RxCocoa 라이브러리에 있다.
Relay
갑자기 Driver
정리